Linux基础学习之从入门到精通Day10
计划任务
一次调度执行at
作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据
Schedule one-time tasks with at. 一次性调度执行 at
Schedule recurring jobs with cron. 循环调度执行 cron
Schedule recurring system jobs.
所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向
一次性调度执行 at
[root@tianyun ~]# yum -y install at
[root@tianyun ~]# man at
[root@tianyun ~]# systemctl start atd
[root@tianyun ~]# systemctl enable atd
语法格式:
at
now +5min
teatime tomorrow (teatime is 16:00)
noon +4 days
5pm august 3 2018
例1:
[root@~]# at now +1min
at> useradd uuuu
at>
job 1 at Sat Mar 21 22:34:00 2015
[root@~]# atq
3 Thu Mar 30 09:55:00 2017 a root
[root@tianyun ~]# id uuuu
例2:
[root@~]# vim at.jobs
useradd u99
useradd u00
touch /date +%F
.txt
[root@~]# at now +1min < at.jobs
循环调度执行cron 用户级
[root@~]# systemctl status crond.service
[root@~]# ps aux |grep crond
root 550 0.0 0.0 126300 1648 ? Ss 10:05 0:00 /usr/sbin/crond -n
crond进程每分钟会处理一次计划任务
=用户级=
存储位置:
[root@~]# ls /var/spool/cron/
管理方式:
crontab -l List the jobs for the current user.
crontab -r Remove all jobs for the current users.
crontab -e Edit jobs for the current user.
管理员可以使用 -u username, 去管理其他用户的计划任务
/etc/cron.deny:
alice
jack
[alice@~]$ crontab -e
You (alice) are not allowed to use this program (crontab)
See crontab(1) for more information
语法格式 Job format:
Minutes Hours Day-of-Month Month Day-of-Week Command
#Example of job definition:
#.---------------- minute (0 - 59)
#| .------------- hour (0 - 23)
#| | .---------- day of month (1 - 31)
#| | | .------- month (1 - 12) OR jan,feb,mar,apr …
#| | | | .---- day of week (0 - 6) OR sun,mon,tue,wed,thu,fri,sat
#| | | | |
#* * * * * command
示例:
00 02 * * * ls //每天2:00整
00 02 1 * * ls //每月1号2:00整
00 02 14 2 * ls //每年2月14号2:00整
00 02 * * 7 ls //每周日2:00整
00 02 * 6 5 ls //每年6月的周五2:00整
00 02 14 * 7 ls //每月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 14 2 7 ls //每年2月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 * * * ls //每天2:00整
- 02 * * * ls //每天2:00中的每一分钟
-
-
-
-
- ls //每分钟执行ls
-
-
-
-
- 14 2 * ls //2月14号的每分钟 1440分钟
*/5 * * * * ls //每隔5分钟
00 02 1,5,8 * * ls //每月1,5,8号的2:00整
00 02 1-8 * * ls //每月1到8号的2:00整
[root@localhost ~]# crontab -l 显示当前用户的计划任务
[root@localhost ~]# crontab -r 移除当前用户所有计划任务