crontab是linux用来添加定时任务的一个工具
crontab命令用法
crontab -l: 查看当前用户下面的定时任务列表
crontab -e : 编辑当前用户的定时任务(新增,删除,修改)
crontab -u user01: 指定用户
如:
crontab -u wls81 -l 查看用户user01的定时任务列表
crontab -u wls81 -e 编辑用户user01的定时任务
crontab格式
基本格式 :
* * * * * command
分 时 日 月 周 命令
0-59 0-23 1-31 1-12 0-6 命令
一共6列,前面5个*代表执行时间,command为执行命令,另外,下面几个特殊符号可能使定时任务的执行时间设置更加灵活
"*" :代表取值范围内的所有的属主,如:0 12 * * *代表每天12点
"/" :代表每,如:0 */5 * * *代表每5个小时
"-" :代表范围,从某个数字到某个数字,如:0 8 1-3 * *代表每个月的1号到3号每天08:00
"," :代表多个数字用逗号隔开,如:0 3,6 * * *代表每天3点和6点
以上特殊字符也可以组合起来使用,如:0 20-8/2,10 * * *代表每天晚上8点到早上8点之间每2个小时,早上10点
以上是crontab的一些基础用法,下面说一下crontab批量操作的小技巧
crontab批量操作
1、将文件直接导入crontab方式
crontab -l>/tmp/lxm
sed -i "s/old_str%new_str/g" /tmp/lxm #替换,如果需要添加,直接在/tmp/lxm文件中修改
crontab /tmp/lxm
2、和第一种类似
(echo "59 19 * * * ps -ef" ; crontab -l )| crontab
3、直接修改/var/spool/cron下面的文件,文件以用户名命名,crontab -l命令可以看到,亲测有效
4、修改/etc/crontab文件,网上说的,具体没有试验过,不过用crontab -l命名看不到
crontab权限
linux有些用户可以用定时任务,有些不可以,原因是crontab也是有权限控制的,linux是通过/etc/cron.allow或者/etc/cron.deny来做权限控制的。
1、如果/etc/cron.allow文件存在,那么只有文件中列出的用户可以使用cron,/etc/cron.deny文件会被忽略
2、如果/etc/cron.allow文件不存在,那么/etc/cron.deny文件中列出的用户不能使用cronetc/cron.deny