1.相关服务
1.1服务一:单一例行任务
具体指执行在设置好的某个条件下的任务,并且是一次性任务,只执行一次,不会重复执行。
AT 命令:
at 命令可以用来在某一时段执行一次任务,只执行一次,不会重复执行。
at 的守护进程atd会在后台模式工作,检查作业队列来运行,默认每60秒检查一次(默认atd守护进程的最小时间单位是分钟),有作业时会检查作业运行时间,如果时间与当前时间相匹配则运行作业。如果多个作业均符合运行要求,则会同时进行,无顺序的要求。
1.检查atd
守护进程是否启动使用指令 ps -ef | grep atd
ps -ef |grep atd
2.at 指令
常用指令
at -l #展示任务列队
at -r #取消任务执行
at -d #清除列队
常用指定时间方式
at 5:20 # 当天的五点二十分钟,如果时间过去,则在第二天执行
at 5:20 today # 使用today、tomorrow来指定时间
at midnight # 使用模糊的词语指定时间,例如 midnight/noon/teatime
at 5pm # 使用12小时制,在时间后面加上am/pm
at 4:00 2024-5-20 #指定日期 日期必须在时间后面
at now + 2 minutes #现在的时间now + 加时间的数量 + 时间单位
3.at命令的白名单和黑名单
为了安全,我们需要设置允许或者不允许使用at命令的用户,以防止主机被劫持或者被黑客利用。
通过两个文件对at命令进行管控。/etc/at.allow 文件中用户允许,/etc/at.deny文件中用户禁止,通常默认所有用户均可使用,所以at.allow 文件默认不存在,但是在两个文件同时存在的条件下,系统只会扫描at.allow文件,如果allow文件为空的话,则不允许任何用户使用at命令,root除外。
1.2.定时执行任务
定时执行的例行任务,每隔一定的周期就执行一次
crontab 命令:
crontab 是在unix与linux 操作系统上用于定时执行任务的工具,用户通过此命令创建以及管理计划任务,以便在特定条件下执行任务。当用户使用crontab命令新建任务后,该任务会被记录在/var/spool/-cron目录下,以用户账号在/etc/crontab下创建一个文件,每一项任务为一行。cron 是系统中后台进程,用于执行任务。
两个对象:
后台服务 crond 读取 配置文件crontab文件
前台命令 crontab 操作 配置crontab文件
1.检查 crond
使用crontab命令依赖crond服务,crond服务会每分钟定期读取/etc/crontab文件及/var/spool/cron文件的记录以及,如果有任务,则会自动执行任务。每执行一次任务,都会记录到/var/spool/cron文件中
ps -ef |grep crond
2.crontab常用命令
crontab [-u user] file crontab
-u user用来设定是某个用户的crontab服务。
-file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。 如果在命令行中没有指定这个文件,crontab命令将接受标准输入上的命令,并将它们载入crontab。
crontab -e #编辑crontab文件内容
crontab -r #从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户, 则默认删除当前用户的crontab文件。
crontab -l #显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的
crontab文件内容。
3.crontab计划任务的格式
分 时 日 月 周 用户 任务
指定时间的特殊符号:
"*" 代表所有的取值范围内的数字,任何时刻都接受。
"*/n" 表示每n个单位间隔
"-" 时间范围
"," 分隔的时段
20 05 20 * * reboot # 每个月的20号5点20重启服务器
*/10 * * * * # 每10分钟
20 05 * * * 1-5 # 每周一到五的5点20分
5,30 * * * * # 每小时的第5分钟和第30分钟
2.FTP 文件共享服务器的搭建
1.实验环境
1.windos 系统版本:window10
2.VMware软件版本:VMware® Workstation 17 Pro 17.0.2
3.Linux系统版本 Red Hat Enterprise Linux 9.2 (Plow)
2.实验步骤
安装vsftpd服务器
dnf install vsftpd #在线安装,需要配置好仓库
修改配置文件,使匿名用户有访问与查看共享目录的权力
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf_bak # 将原始配置文件备份
vim vsftpd.conf
将以下配置改为yes
anonymous_enable=YES # 允许匿名用户访问
anon_upload_enable=YES # 允许匿名用户上传控制
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
修改本地上传目录的权限
chmod 777 /var/ftp/pub/upload -R
chmod 777 /var/ftp/pub -R
关掉Windows和Linux防火墙,关闭SELinux
重新启动ftp服务器
systemctl restart vsftpd.service
systemctl status vsftpd.service
打开此电脑,在路径端写入Linux系统的IP地址
ftp:// xxx
则可以点开文件,拖到桌面,保存在本地,也可以访问与新建文件,也可将本地创建的文件拖到文件中保存
3.扩展:特定用户访问特定文件以及的特定家目录
建立 vim /etc/vsftpd/ftp_suth_file 文件,写入用户名和密码
加密认证文件,将此文件转换系统可识别的认证文件
cd /etc/vsftpd/
“db_load -T -t hash -f ftp_auth_file ftp_auth_file.db”
转换出来的是一串加密字符
建立 pam认证文件 pam是我们系统中的一个插件程序,用来确认配对信息, 例如我们用ftp登录主机用户获取信息是, 需要先输入用户名,然后输入密码才可以进入, 可以来查看pam 的配置目录里的文件内容。需要建立虚拟用户的认证文件 在/etc/pam.d下面创建文件,文件名自定义
vim /etc/pam.d/test
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file #账户 强制认证 pam插件名称 指定认证的文件
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
使用本机进行测试
mkdir /home/test{1..3}
touch /home/test1/abc1
touch /home/test2/abc2
touch /home/test3/abc3
编辑vsftpd的配置文件
重启服务
测试