crontab使用记录

4 篇文章 1 订阅
1 篇文章 0 订阅

crontab使用

命令行相关

crontab [ -u user ] file
crontab [ -u user ] [ -i ] { -e | -l | -r }

​ crontab是一个程序,用来安装、卸载、显示定时任务列表,用于驱动cron守护进程。

​ 每个用户都可以拥有自己的crontab,一般存放在/var/spool/cron/crontabs下,且以用户名作为文件名称,一般不建议直接编辑文件(可能定时任务无法生效),建议使用crontab -e

-u 	指定特定用户的crontab   (使用suod时可以指定该用户,不至于导致crontab变成root)
	如果不指定-u参数,则crontab examines "your" crontab
-l	显示当前用户的定时任务
-r	删除当前用户的定时任务
-e	编辑当前用户的定时任务
-i	和-r搭配使用,在删除前给出提示信息
cron [-f] [-l] [-L loglevel]
cron is started automatically from /etc/init.d on entering multi-user runlevels.
Cron从/etc/init.自动启动进入多用户运行级别。
-f	保持在前台模式,不要后台化。
-l	为/etc/cron.d文件启用符合LSB的名称
-n	发送邮件时,在主题中包含FQDN。默认情况下,cron将缩写主机名。
-L loglevel	告诉cron要记录关于作业的哪些内容(不管该值如何,都会记录错误)
	0 	   disable
	1      will log the start of all cron jobs  (default)
	2      will log the end of all cron jobs
	4      will log all failed jobs (exit status != 0)
	8      will log the process number of all cron jobs
	15 	   all
cron在/var/spool/cron/crontabs中查找crontab文件,并加载进内存中;
cron读取/etc/crontab,在Debian中会预定义/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly  and  /etc/cron.monthly
cron读取/etc/cron.d目录,和/etc/crontab同等处理。
和/etc/crontab一样,/etc/cron.d路径下的文件被实时检测是否有改动;
/etc/crontab和etc/cron.d路径下的文件的拥有者都应该是root
/etc/cron.d, /etc/cron.hourly,  /etc/cron.daily,  /etc/cron.weekly, /etc/cron.monthly下的文件也可以是符号链接,只要符号链接和它所指向的文件都属于根用户。

/etc/cron.d下的文件不需要是可执行文件;
/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly,/etc/cron.monthly需要可执行
	cron每分钟唤醒一次(也就是说cron的最小精度是一分钟,如果需要实现秒级的定时任务,需要做一定的调整),检查每个命令,看看它是否应该在当前分钟内运行。在执行命令时,任何输出都会发送给crontab的所有者(或者发送给crontab中MAILTO环境变量中指定的用户,如果存在的话)。
	cron每分钟检查它的spool目录的modtime(或/etc/crontab文件上的modtime)是否已更改,如果已更改,cron将检查所有crontab上的modtime并重新加载那些已更改的。因此,每当crontab文件被修改时,不需要重新启动cron。注意,crontab(1)命令在更改crontab时更新spool目录的modtime。
	crontab每次更新定时任务时,都会自动加载相关改动,无需再次重启服务;
修改系统时间,当时钟更改少于3小时时,需要特别考虑,只有在特定时间运行的作业会受到影响。使用通配符指定的作业将立即基于新时间运行。
超过3小时的时钟变化被认为是对时钟的修正,并立即使用新的时间。
cron将日志记录到syslog的cron中,可以使用标准syslogd控制输出打印

配置文件相关

/etc/cron.allow
/etc/cron.deny
	针对不同用户,需要关注,类似于黑白名单;
/var/spool/cron/crontabs
	The files under /var/spool/cron/crontabs are named based on the user's account name.
	针对用户级的crontab文件,存放在/var/spool/cron/crontabs路径下,已用户名命名;
/etc/crontab  crontab配置文件
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
/etc/cron.d
Debian系统中配置/etc/default/cron的话,可以通过使用/etc/environment或/etc/default/locale来管理cron守护进程本地化设置环境,使用后者的值覆盖前者的值。将读取这些文件,并使用它们设置LANG、LC_ALL和LC_CTYPE环境变量。然后使用这些变量设置邮件字符集,默认值为'C'。
如果存在/etc/timezone,守护进程将使用/etc/timezone中的时区定义。
可以在用户的crontab定义中重新定义环境,但cron只处理单一时区中的任务。

日志相关

cat /var/spool/mail/uos
mail
查看当前cron发送的邮件信息,里面包含执行的脚本和具体的执行结果(显示内容等)
sudo cron -L 15
udo cat /var/log/syslog |grep cron
设置日志等级并查看日志信息
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值