Linux计划任务
Linux计划任务是系统管理和自动化的重要工具,可以减少人工干预、提高工作效率,并有效管理系统资源和维护。使用恰当的工具,可以显著提升系统的可靠性和运行效率。
1. 一次性计划任务at
1.1 下载安装
yum -y install at #yum下载安装
systemctl start atd #启动服务
systemctl enable atd #开机自启
1.2 使用方法
[root@localhost ~]# at now +1min
at> echo "123"
at> <EOT> #CTRL+D退出
job 1 at Sat Aug 10 11:01:00 2024
#1分钟后输出123到当前终端
at teatime #下午4点
at noon #中午12点
at midnight #午夜12点
at now +{1min|1hour|1day|1week} #{1分钟后|1小时后|1天后|1周后}
at 8am #早上8点
at 8pm #晚上8点
at 8am tommorrow #明天早上8点
at 8am +1week #1周后的早上8点
文件创建计划任务
echo "touch /mnt/a.txt" > at.jobs
at 8pm < at.jobs
#下午8点创建/mnt/a.txt文件,可以一次性执行多个计划任务
atq #查看所有一次性计划任务
atrm id #删除指定的计划任务
2. 周期性计划任务crontab
2.1 下载安装
yum -y install crontabs #yum下载安装
systemctl start crond.service #启动服务
systemctl enable crond.service #开机自启
systemctl status crond.service #查看服务状态
#crond进程每分钟会处理一次计划任务
2.2 管理方式
crontab -l #列出当前用户的计划任务
crontab -r #删除当前用户所有的计划任务
crontab -e #编辑当前用户的计划任务
超级管理员可以使用 -u username {-e|-l|-r}, 去管理其他用户的计划任务
2.3 使用方法
crontab -e #开始编辑计划任务
* * * * * command #要执行的命令或脚本
*:表示分钟(0-59)
*: 表示小时(0-23)
*:表示日期(1-31)
*: 表示月份(1-12)
*: 表示星期几(0-7,0和7表示星期天)
例如:
0 6 * * * ./home/check.sh 每天6:00执行脚本
0 4 * * 6 cp /var/log/mysqld.log /var/log/mysqld.log.back 每周六凌晨4:00备份日志
30 15 3 2 5 每年2月3日和2月的每周五的15:30
30 15 */3 2 * 每年2月每隔3天的15:30
crontab -u jack -e #使用jack用户创建计划任务
crontab -u jack -l #查看jack用户的计划任务
crontab -u jack -r #删除jack用户的计划任务
2.4 使用权限
/etc/cron.deny #该文件中所列用户不允许使用计划任务(黑名单)
/etc/cron.allow #当这个文件产生时,/etc/cron.deny文件失去作用,只有这个文件中的用户才能使用crontab(白名单,优先级高于黑名单)
标签:systemctl,用户,crontab,任务,计划,jack,Linux
From: https://blog.csdn.net/Carolless/article/details/141090435