linux-定时任务调度
crond 任务调度
crontab 进行 定时任务的设置
概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等.
2.个别用户工作:个别用户的个性化需求,可能希望执行某些程序,比如对mysql数据库的备份。示意图
基本语法
crontab[选项]
常用选项
快速入门
设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab -e 命令。
接着输入任务到调度文件
如:*/lls-l /etc/>/tmp/to.txt命令
意思说每小时的每分钟执行1s-1/etc/>/tmp/to.txt
-
参数细节说明
5个占位符的说明
-
特殊符号说明
-
特殊时间执行案例
应用实例
-
案例 1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate 文件中
*/ldate>>/tmp/mydate -
案例 2:每隔1分钟,将当前日期和日历都追加到 /home/mycal 文件中
步骤:
(1)vim /home/my.sh 写入内容 date >>/home/mycal 和 cal >> /home/mycal(2)给 my.sh 增加执行权限,chmod u+x /home/my.sh
(3)crontab -e 增加 /l*** /home/my.sh
-
案例 3:每天凌晨 2:00 将 mysql 数据库 testdb备份到文件中。
提示:指令为mysqldump -u root -p 密码 数据库 >/home/db.bak
步骤(1)crontab -e
步骡(2)0 2*** mysqldump -u root -proot testdb >/home/db.bak
crond 相关指令
conrtab -r:终止任务调度。
crontab -1:列出当前有那些任务调度。
service crond restart [重启任务调度]
at 定时任务
基本介绍
1)at命令是一次性定时计划任务,at的守护进程 atd 会以后台模式运行,检查作业队列来运行。
2)默认情况下,atd 守护进程每 60 秒检查作业队列。有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
3)at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
4)在使用 at 命令的时候,一定要保证 atd 进程的启动,可以使用相关指令来查看
ps -ef | grep atd //可以检测 atd 是否在运行
5)示意图
at 命令格式
at[选项] [时间]
Ctrl+D 结束 at 命令的输入,输出两次。
at 命令选项
at时间定义
at指定时间的方法:
- 指定具体时间:
- 使用
hh:mm
格式来指定同一天的特定时间。如果所给时间已经过去,则任务将在第二天的同一时间执行。 - 例如:
at 16:00 today
表示在今天下午4点运行命令。
- 使用
- 使用模糊时间表达:
- 可以使用
noon
(中午12:00)、midnight
(午夜00:00)这样的关键词。请注意,tea-time
不是一个标准的at
命令关键词,但它可以被一些系统识别为下午4点。 - 例如:
at midnight tomorrow
表示在明天午夜运行命令。
- 可以使用
- 使用12小时制:
- 如果使用12小时制,需要加上
am
或者pm
。 - 例如:
at 12pm today
表示在今天中午12点运行命令。
- 如果使用12小时制,需要加上
- 指定具体日期和时间:
- 可以使用
mm/dd/yy
或者dd.mm.yy
格式来指定具体的日期。 - 例如:
at 04:00 03/01/21
表示在2021年3月1日早上4点运行命令。
- 可以使用
- 使用相对时间:
- 使用
now + count time-units
的格式。注意这里的time-units
应该是minutes
、hours
、days
或weeks
。 - 例如:
at now + 5 minutes
表示在现在时间之后5分钟运行命令。
- 使用
- 使用今天或明天:
- 直接使用
today
或者tomorrow
。 - 例如:
at 10:00 tomorrow
表示在明天上午10点运行命令。
- 直接使用
示例
- 如果你想在明天下午4点运行一个命令,可以这样写:
at 16:00 tomorrow
注意事项
- 在使用
at
命令时,today
和tomorrow
关键词通常不需要加上日期,因为它们默认指的是今天的日期。 at
命令允许你输入多行命令。在输入at
命令后,按下回车键进入命令编辑模式,输入完所有命令后输入.
并按回车键来结束命令输入。
总结
通过 crond
和 at
命令,Linux 用户可以轻松地安排周期性的任务或一次性任务。crond
更适合长期重复的任务,而 at
适用于一次性任务。了解这两种工具的使用方法可以帮助提高系统的自动化管理水平。
- 点赞
- 收藏
- 关注作者
评论(0)