「这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战」。
⭐定时任务调度:指系统在某个时间执行的特定的命令或程序!有些重要的工作必须周而复始地执行,如病毒扫描。有些用户希望执行某些程序,比如对 mysql
数据库的定时备份。
1. crontab
定时任务调度
-
语法 :
crontab [选项]
-
常用选项
-e
:编辑 crontab 定时任务【crontab -e
】-l
:查询 crontab 任务【crontab -l
】-r
:删除当前用户所有的 crontab 任务【crontab -r
】
-
重启任务调度:
service cronb restart
-
设置任务调度相关文件:
/etc/crontab
-
例子:
*/1 * * * * ls -l /etc/ > /tmp/to.txt
==> 每小时的每分钟执行ls- l /etc/ > /tmp/to.txt
命令 -
⭐5个
*
分别指:一小时中的第几分钟、一天中第几小时、一个月中第几天、一年中第几月、一周中星期几(0/7都是周日)。天 和 星期尽量别同时使用。
-
占位符
*
图例说明:
-
定时调度时间项案例:
⭐关于 */1 * * * * ls -l /etc/ > /tmp/to.txt
命令的演示:
⭐**crontab
经典案例**
- 1️⃣每隔1分钟,就将当前的日期信息,追加到
/tmp/mydate
文件中:*/1 * * * * date >> /tmp/mydate
- 2️⃣每隔1分钟,将当前日期和日历都追加到
/home/mycal
文件中:*/1 * * * * date cal >> /home/mycal
- 3️⃣每天凌晨 2:00 将 mysql 数据库 testdb 备份到文件中(备份指令:
mysqldump -u root -p密码 数据库 > /home/db.bak
)crontab -e
0 2 * * * mysqldump -u root -p123456 testdb > /home/db.bak
2. at
任务调度
- at 命令是一次性定时计划任务——执行任务队列(执行完某个任务后,不会再执行此任务了),at 的守护进程 atd 会以后台模式运行,检查作业队列来运行。
默认模式下 atd 守护进程每 60s 检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
在使用 at 命令时,一定要保证 atd 进程的启动,可以使用相关指令来查看:ps ef | grep atd
- ⭐at 命令格式:
at <时间> <命令>
- ⭐
atq
: 查看任务队列 - ⭐
atrm <编号>
: 删除编号对应的任务 - ⭐at 任务调度实例
- 2天后下午5点执行
/bin/ls /home
atq
命令查看系统中工作任务队列- 明天17点输出时间到指定文件内 比如
/root/date100.log
- 2分钟后,输出时间到指定文件内 比如
/root/date200.log
- 删除已经设置的任务,
atrm <编号>
- 2天后下午5点执行
Ctrl + D
结束 at 命令的输入- 🔥 Ctrl + D 的作用:【键盘输入结束(End Of File,EOF 或 End Of Input)】
- 🔥 Ctrl + C 的作用:【中断目前程序】
希望本文对你有所帮助🧠
欢迎在评论区留下你的看法🌊,我们一起讨论与分享🔥