前要:Linux的计划任务主要分为三块。单一的执行一次计划任务,系统自动的选择空闲时间去执行特定的任务,
周期性的执行相关任务,下面就此三块做简要的描述。
一:单一的计划任务at
1:使用at命令需要先行启动atd服务
查询at命令需要启动的服务名字
rpm -ql at ,所显示的文件列表中
centos6:init.d后面的名字为服务名
centos7.后缀为service的为服务的名字
查询服务有无开启
centos6:service atd status
centos7:systemctl status atd
启动服务:
service atd start
systemctl start atd
2:用法
at 为一次性创建计划任务的命令。创建计划任务后会生成相关的文件存放在/var/apool/at目录中。
eg:
基本使用:
创建:
1:at 时间
at> cmd1
at> cmd2
ctrl+d 退出创建
2 at -f 从指定文件中读取计划任务列表
查询:
at –l 查询已经创建的计划任务列表
cat /var/spool/at/* 可以直接查看要创建的计划任务列表内的 详细内容
删除:
at –d 3
3:为创建的计划任务编号
3:相关配置文件
/var/spool/at 存放已经创建的计划任务
/etc/at.deny 此文件内放的是不可以创建计划任务的用户,为黑名单
/etc/at.allow 此文件默认不存在,自己创建后 里面放的是可以创建计划任务的用户
相当于白名单,除了白名单的用户,其他用户不可以创建
备注:删除deny
allow文件后。只有root用户可以创建计划任务
二:系统计划任务
1:系统自带的周期性计划任务:
/etc/hourly 每小时执行
/etc/cron.daily 每天执行
/etc/weekly 每周执行
/etc/cron.monthly 每月执行
/etc/cron.d/
2:自行更改系统周期计划任务
更改 /etc/crontab文件
格式:
# * * * * *
user-name command to be executed
执行频率: * * * * *
1)* 表示给定时间点上有效取值范围的所有值
2)*/# 表示每#单位执行一次
3)#,#,# 离散取值
4)特殊举例
02 15,28 * 0,6
表示的意思是周六周日以及每个月的15号及28号执行命令
user-name: 以哪个用户的身份运行计划任务
command: 计划任务的内容
三:用户自行创建周期性计划任务
创建: crontab –e
使用命令 crontab –e 自行打开 周期性计划任务文本
按照时间 命令的格式写入计划任务的内容即可。
用户创建的计划任务保存在
/var/spool/cron/目录下
删除:crontab –d
也可以直接删除/var/spool/cron/下的计划任务文件
查看: crontab –l
更改: crontab –e
–u user 更改其他用户的计划任务,只有root可用
控制用户执行计划任务:
/etc/cron.deny
/etc/cron.allow
原创文章,作者:mapipi,如若转载,请注明出处:http://www.178linux.com/78942