linux-计划任务管理

159 阅读2分钟

计划任务管理

at命令 一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式

1  at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
2   atq #查看未执行的一次性计划任务
3   atrm 4 #删除第4条任务

实例

[root@kgc /]# date
2023021日 星期一 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服务

image.png

实例

[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 设置以下计划任务