计划任务管理
at命令 一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式
1 at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
2 atq #查看未执行的一次性计划任务
3 atrm 4 #删除第4条任务
实例
[root@kgc /]# date
2023年 02月 1日 星期一 16:20:58 +00
[root@kgc /]# at 16:23 2022-02-1
at> pgrep -U root | wc -l > /tmp/ps.root ###统计该时间点系统中由 root 用户运行的进程的数量,并将该数值保存到/tmp/ps.root 文件中
at> <EOT> ###任务设置完毕后按Ctrl+D 组合键提交
job 1 at Mon Aug 16 16:23:00 2021
[root@localhost ~]# cat /tmp/ps.root ###等过了计划时间后验证命令结果
使用crontab命令,设置周期性计划任务
按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
属于周期性计划任务
服务脚本名称:/etc/init.d/crond
主要设置文件:
全局配置文件,位于文件: /etc/crontab(建议不要修改此文件)
系统默认的设置,位于目录: /etc/cron.*/
用户定义的设置,位于文件: /var/spool/cron/用户名
常用的选项:
-e:编辑计划任务列表
-u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有root用户有权限使用此选项(用于编辑、删除其他用户的计划任务)
-l:列表显示计划任务
-r:删除计划任务列表
crontab 命令选项的使用
crontab -u 用户名 ###指定XX用户的cron服务
crontab -l ###列出当前用户下的cron的详细内容
crontab -u zx -l ###列出zx用户下的cron的详细内容
crontab -r ###删除所有用户的cron内容,普通用户执行,只删除自己的cron内容
crontab -r -u zx ###删除zx用户的cron内容
crontab -e ###编辑cron服务
实例
[root@localhost ~]# crontab -e
50 7 * * * /usr/bin/systemctl start sshd.service
50 22 * * * /usr/bin/systemctl stop sshd.servic ###每天早上7:50自动开启 sshd 服务,22:50 关闭 sshd 服务
0 0 */5 * * /usr/bin/rm -rf /var/ftp/pub/* ###每隔五天清空一次 FTP 服务器公共目录/var/ftp/pub 中的数据
30 7 * * 6 /usr/bin/systemctl httpd restart ###每周六的 7:30 重新启动系统中的 httpd 服务
30 17 * * 1,3,5 /usr/bin/tar jcf httpdconf.tar.bz2 /etc/httpd/ ###每周一、周三、周五的下午 17:30,使用 tar 命令自动备份/etc/httpd 目录,则可由 root 用户通过 crontab 设置以下计划任务