Linux入门(九)任务调度

发布于:2025-05-24 ⋅ 阅读:(22) ⋅ 点赞:(0)

设置任务调度文件 /etc/crontab

#设置调度任务
crontab -e
#将任务设置到调度文件
# * * * * * 
# 第1个* 分钟 0-59
# 第2个* 小时 0-23
# 第3个* 天 1-31
# 第4个* 月 1-12
# 第5个* 周 0-7 0和7都代表的是星期天
#每分钟执行
*/1 * * * * ls -l /etc/ > /tmp/to.txt

0 8,12,16 * * * 代表 每天8点0分 12点0分 16点0分 都执行一次
0 5 * * 1-6 星期一至星期六 每天5点0分执行

实例
每分钟执行一次 将当前日期信息追加到 /tmp/mydate.txt 文件

crontab -e
 */1 * * * * date >> /tmp/mydate.txt

每两分钟执行一次 将当前日期信息和日历都追加到 /tmp/mydate.txt 可以写两个定时任务,但是一般建议写一个shell脚本,定时执行shell

cd /home
mkdir myjob
vi datejob.sh
#文件内容
date >> /tmp/mydate.txt
cal >> /tmp/mydate.txt
#文件内容
#设置权限 给读写执行权限给root账户
setfacl -m u:root:7 /home/myjob/datejob.sh
#设置定时任务
crontab -e
*/2 * * * * /home/myjob/datejob.sh

每天凌晨两点将mysql 数据testdb 备份

crontab -e
0 2 * * * mysqldump -u root -p密码 testdb > /home/testdb.bak

列表当前任务

#列表当前任务
crontab -l
#终止任务 不会提示直接删除 慎用 建议删除之前备份
mkdir  /home/mycrontab
 crontab -l > /home/mycrontab/backup_$(date "+%Y%m%d%H%M").txt
crontab -r 
#重启任务
service crond restart 

at 定时任务

at 命令是一次性定时任务 在使用at 命令时 一定要保证atd 进程的启动 可以使用ps -ef | grep "atd"命令查看

at指定时间的方法:
1、hh:mm (小时:分钟),如果时间已过去 那就在第二天执行
2、使用midnight、moon、teatime(一般是指下午4点)
3、采用12小时制 在时间后面+AM 或者PM 例如:12pm
4、使用具体的时间 mm/dd/yy (月/日/年) 指定的日期必须跟在指定的时间后面 例如:04:00 05/20/2025
5、使用相对计时法 指定格式:now + count time -units,now 就是当前时间

实例1 2天后下午5点执行/bin/ls /home

at 5pm + 2 days
/bin/ls /home
#完成输入后Ctrl+D 结束at 输入
#查询工作任务
atq 

案例2 明天17点输出时间到指定文件中

at 5pm tomorrow
date > /home/mydate.txt

案例3 两分钟之后输出时间到指定文件中

at now + 2 minutes
date >> /home/mydate.txt

实例4 删除任务

#2 对应的任务的编号
 atrm 2

网站公告

今日签到

点亮在社区的每一天
去签到