发布网友 发布时间:2022-02-26 11:18
共2个回答
懂视网 时间:2022-02-26 15:39
产品型号:thinkpad E15
系统版本:centos7
软件版本:crontab 1.5
在linux系统中,执行周期的任务,可以使用crontab。crontab会把你指定的工作或任务,按照你设定的周期一直循环执行下去启动crond服务[root@xuegod63 ~]# systemctl start crond
crontab具体计划任务书写格式:
* * * * * command需要执行的命令
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(星期日用0或7表示)
第6列要运行的命令
一行对应一个任务,特殊符号的含义:
* 代表取值范围内的数字 (每)
/ 指定时间的间隔频率 */10 0-23/2
- 代表从某个数字到某个数字 8-17
分开几个离散的数字 6,10-13,20
创建计划任务
例1:每天凌晨2点1分开始备份数据
[root@xuegod63 spool]# crontab -e #添加计划任务
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
[root@xuegod63 ~]# crontab -l #查看
例2:以非root用户添加计划任务。 这里使用bin用户来添加
[root@xuegod63 ~]# crontab -u bin -e
*/10 * * * * echo "aaaaaaa" >> /tmp/bin.txt
系统级别的计划任务
[root@xuegod63 etc]# vim /etc/crontab
1 2 * * * root echo "aaaaaaa" >> /tmp/1.txt
热心网友 时间:2022-02-26 12:47
如果我们需要定时执行一些周期性重复性的任务,我们就会用到定时执行任务功能来帮我们自动执行每天、每周等周期性重复性的任务而不需要人为干预即可实现。
我们通过crontab –e来创建自己的定时任务,下图中的5个*的含义是,第一个*是分,第二个*是小时,第三个*是日,第4个*是月,第5个*是周,第6列是命令,下图的意思是给所有人发警告信息Hello,每隔一分钟就发送一次Hello信息。
我们可以通过crontab –l来查看当前的已创建的定时任务,可以发现当前有一个定时任务,通过crontab –r删除当前的定时任务,再次通过crontab –l去查看是否还有定时任务,发现已经成功删除了。
进入/etc目录,查看首字母为cron的目录,cron*,*在这里是通配符,匹配任意个字符,通过查看/etc目录下所有与定时任务相关的目录和文件。
通过cat crontab查看定时任务的故事,包括shell的位置、路径、默认邮件发给root账户、以及定时任务的格式,5个*的含义及第6列是写具体的命令。
我们可以看看系统里面的定时任务,有每小时执行的cron.hourly、每日执行的cron.daily、每月执行的cron.monthly、每周执行的cron.weekly.我们通过命令ll cron.daily可以看到里面有很多可执行文件,这些都是系统每天自动执行的定时任务。我们可以把自己建立的定时文件放在系统已有的目录下,比如每天的定时任务放在cron.daily下面。
系统常用的每天执行的定时任务,tmpwatch定时任务会去/tmp、/var/tmp临时目录下找超过10天的文件并删除,logrotate日志文件回滚,默认是一周回滚一次,1个月回滚4次,也就是日志只保存1个月,logwatch把当天最敏感的日志找出来形成一个电子邮件默认发给超级用户。