命令行运维crontabs

19
五月
2021

目录

 

1.命令简介

2.执行故障排查

3.使用命令/脚本增加/删除crontab项(可用于远程运维和批量运维)


1.命令简介

常用命令:

crontab [-u username]    //省略用户表表示操作当前用户的crontab

-e (编辑工作表)

-l (列出工作表里的命令)

-r (删除工作作)

格式如下:

f1 f2 f3 f4 f5 program

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

更新系统时间时区后需要重启cron,在ubuntu中服务名为cron:

 

$service cron restart

ubuntu下启动、停止与重启cron:

$sudo /etc/init.d/cron start

$sudo /etc/init.d/cron stop

$sudo /etc/init.d/cron restart

2.执行故障排查

第一种是脚本执行了,但是报错:在crontab里调度运行,结果发现没有结果,查看/var/log/message 日志,发现crontab有执行,但是失败。

手动运行都是可以的,放在crontab里边发现就不能运行了。
处理方法:脚本中不要采用相对路径,全部改为绝对路径


第二种是编辑/var/spool/cron/user   user为执行用户名,一般为root
如更改后不起效果,请重新加载cron:

处理方法: /etc/init.d/cron reload 

第三种 用crontab -e  进行编辑

use the following command add entries to crontab should take effect right away.
#crontab -e

3.使用命令/脚本增加/删除crontab项(可用于远程运维和批量运维)

1, 删某一项cron任务

方法1(仅适用root,不推荐)
修改/var/spool/cron/root文件

这个方法有以下问题:
1, 只有root用户可以修改,其它用户均没有权限,因为/var/spool/cron这个目录的属主及属组均是root,且目录权限是700, 因此其它用户没有权限进入此目录去修改自己的/var/spool/cron/username文件.

方法2
如果某个用户要删除自己的cron任务, 那么只需要执行

crontab -l

crontab -l | grep -v 'config-edit.163.com/config_dir/newsyn' | crontab -

crontab -l | grep -v 'tomcatRoot/jd_product/data/jd_product.txt' | crontab -

如果root需要删除某个用户的cron任务, 那么

crontab -u USERNAME -l

crontab -u USERNAME -l | grep -v 'config-edit.163.com/config_dir/newsyn'  | crontab -u USERNAME -

crontab -u USERNAME -l | grep -v 'tomcatRoot/jd_product/data/jd_product.txt'  | crontab -u USERNAME -

提示: -u参数仅有root可以调用.

也可以这么做

crontab -l | grep -v 'config-edit.163.com/config_dir/newsyn' > cron.base
crontab cron.base

 

二, 增加一项cron任务

#普通用户可以执行
(crontab -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -

#root用户可以执行
(crontab -U USERNAME -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u USERNAME -

三, 删除所有cron任务(清除cron)

crontab -r

crontab -r -u USERNAME


如还不行就从其服务:
处理方法:/etc/init.d/crond restart 

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员