crontab 定时器(包括执行shell)
今天在网上看到这篇不错的教程,是介绍CronTab的,写的很清楚。所以转载过来,做个分享。
限制用户使用crontab的文件有:/etc/cron.allow /etc/cron.deny 。
当使用crontab建立工作排程后,将被记录到/var/spool/cron里。
cron执行的每一项工作都被记录到/varlog/cron里去。
当使用crontab建立工作排程后,将被记录到/var/spool/cron里。
cron执行的每一项工作都被记录到/varlog/cron里去。
crontab参数:
-u:只有root才可能,帮其他用户建立或移除工作排程。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。
例1:每天12:00给root发信。
[root@lyy etc]# crontab -e #用vi编辑
0 12 * * * mail root -s "at 12:00" < /root/.bashrc
0 12 * * * mail root -s "at 12:00" < /root/.bashrc
每项工作有六个字段分别是:
分钟 小时 日期 月份 周 指令
0-59 0-23 1-31 1-12 0-7 指令 #0和7都代表星期天
0-59 0-23 1-31 1-12 0-7 指令 #0和7都代表星期天
辅助特殊字符:
* (星号)代表任何时刻
,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5
,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5
例2:每隔3分钟,在屏幕输出字符
[root@lyy etc]# crontab -e
[root@lyy etc]# crontab -l
*/3 * * * * echo "hello world !!!!!" > /dev/pts/0 #pts/0是用telnet的终端接口
[root@lyy etc]# crontab -l
*/3 * * * * echo "hello world !!!!!" > /dev/pts/0 #pts/0是用telnet的终端接口
查看一下记录
[root@lyy etc]# cat /var/log/cron
Dec 12 20:27:01 lyy crond[9865]: (root) CMD (echo "hello world !!!!!" > /dev/pts/0)
Dec 12 20:30:01 lyy crond[9908]: (root) CMD (echo "hello world !!!!!" > /dev/pts/0)
Dec 12 20:30:01 lyy crond[9908]: (root) CMD (echo "hello world !!!!!" > /dev/pts/0)
例3:每个星期三下午14:30分发送一个邮件给pc
[root@lyy etc]# crontab -e
30 14 * * 3 mail pc -s "test" < /home/text.txt
30 14 * * 3 mail pc -s "test" < /home/text.txt
crontab -e 是针对用户的cron设计的,如果是系统例行性任务,只要编
辑/etc/crontab文件就可以了。
辑/etc/crontab文件就可以了。
查看/etc/crontab内容
[root@lyy etc]# cat /etc/crontab
SHELL=/bin/bash #接口
PATH=/sbin:/bin:/usr/sbin:/usr/bin #执行路径搜寻
MAILTO=root #以mail发送者
HOME=/ #家目录
SHELL=/bin/bash #接口
PATH=/sbin:/bin:/usr/sbin:/usr/bin #执行路径搜寻
MAILTO=root #以mail发送者
HOME=/ #家目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly #每小时
02 4 * * * root run-parts /etc/cron.daily #每天
22 4 * * 0 root run-parts /etc/cron.weekly #每周日
42 4 1 * * root run-parts /etc/cron.monthly #每个月1号
01 * * * * root run-parts /etc/cron.hourly #每小时
02 4 * * * root run-parts /etc/cron.daily #每天
22 4 * * 0 root run-parts /etc/cron.weekly #每周日
42 4 1 * * root run-parts /etc/cron.monthly #每个月1号
取消不要的输出项目:把输出的结果以命令重导向到/dev/null
安全检验:由于一些木马以例行命令方式值入,所以可以通过
检查/var/log/cron来发现。
检查/var/log/cron来发现。
周与日月不可同时并存
如:
30 12 11 9 5 root echo "just test " #这是错误的写法。
本来以为九月十一号是星期五执行这个任务,但是系统可能会判定每个星期
五执行一次或每年九月十一号分别执行。
五执行一次或每年九月十一号分别执行。
唤醒停机期间的工作任务 anacron
anacron不能取代crontab,它存在目的是处理非24小时在线的linux系统的
crontab的执行。它是以天为单位或在开机后执行,它会检查停机期间的
crontab并执行,然后就自动停止了。
crontab的执行。它是以天为单位或在开机后执行,它会检查停机期间的
crontab并执行,然后就自动停止了。
linux命令:
建立任务crontab -e
*/1 * * * * echo 'ddd'/var/test.txt 一分钟写一次ddd到test.txt文件中
* * * */1 * sh /var/jboss-4.0.5.GA/server/default/log/temp/delete_log1.sh 一个月运行一次delete_log1.sh脚本
sh脚本(delete_log1.sh)
dd=`date -d"1 month ago" +%y-%m`
rm -vf /var/temp/log.20$dd-* 删除当前时间的起一个月的匹配文件
相关推荐
liguojia 2020-10-20
木子李CSDN 2020-06-05
kernelstudy 2020-05-21
playlinuxxx 2020-05-08
IsanaYashiro 2020-04-22
fenxinzi 2020-04-07
山兔与孟婆 2020-03-28
stoneechogx 2020-02-17
onlykg 2020-02-15
大老张学编程 2020-02-09
linuxisperfect 2020-01-09
liuyh 2019-12-22
蜀川居 2013-08-05
happywxp 2013-03-27
chenzelin 2013-03-31
NeverAgain 2019-12-13
mieleizhi0 2019-12-05
ningningmingming 2019-11-13
playlinuxxx 2013-09-02