linux定时运⾏命令
linux定时运⾏命令
1.命令简介
每个⽤户都有各⾃不同的计划任务列表,⽤各⾃的帐户登录后运⾏
复制代码
代码如下:
crontab -l
就可查看到各任务的计划任务情况,使⽤下列命令可以修改⾃⼰的计划任务
复制代码
代码如下:
crontab -e
每次添加完任务后,⼀定记得重新启动crond服务,不然不会⽣效
复制代码
代码如下:
service crond restart
2.实例
下⾯为⼀计划任务的样例
复制代码
代码如下:
#每个⽉的4号和每个礼拜的礼拜⼀到礼拜三的早上11点
0 11 4 * mon-wed date
上⾯这句的意思是“每个⽉的4号和每个礼拜的礼拜⼀到礼拜三的早上11点显⽰时间”,你把date改成你想执⾏的命令,再把执⾏的时间改了,就可以形成⼀个定时执⾏命令了
复制代码
代码如下:
#每分钟执⾏⼀次
*/1 * * * * date
#在/root/run_sh/下⾯写⼀个shell脚本,命名为run.sh,内容如下
#!/bin/sh
echo hello > /
然后运⾏crontab -e命令,写⼊
复制代码
代码如下:linux循环执行命令脚本
*/1 * * * * /root/run_sh/run.sh(⼀定要绝对路径)
保存退出后执⾏service crond restart,过⼀分钟后你就会在/root下看到⽂件。
#定时运⾏java程序,写⼀命名为run.sh的shell脚本,内容如下
#!/bin/sh
cd /root/javaExe/
java TestCron/Test
后运⾏crontab -e 写⼊
*/1 * * * * /root/run_sh/run.sh(⼀定要绝对路径)
后重启crond服务。
3.空格之间的参数意义如下
分钟⼩时天⽉星期要执⾏的命令
前⾯五个参数中间⽤空格隔开,最后是要执⾏的命令。
详细的请参考下⾯
Crontab是⼀个很⽅便的在unix/linux系统上定时(循环)执⾏某个任务的程序
使⽤cron服务,⽤ service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它,
cron服务是⼀个定时执⾏的服务,可以通过crontab 命令添加或者编辑需要定时执⾏的任务:
crontab -u //设定某个⽤户的cron服务,⼀般root⽤户在执⾏这个命令的时候需要此参数
crontab -l //列出某个⽤户cron服务的详细内容
crontab -r //删除没个⽤户的cron服务
crontab -e //编辑某个⽤户的cron服务
⽐如说root查看⾃⼰的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有⼀些格式和约定,输⼊:crontab -u root -e
进⼊vi编辑模式,编辑的内容⼀定要符合下⾯的格式:*/1 * * * * ls >> /
编辑/etc/crontab⽂件,在末尾加上⼀⾏: 30 5 * * * root init 6 这样就将系统配置为了每天早上5点30⾃动重新启动。需要将crond设置为系统启动后⾃动启动的服务,可以在/etc/rc.d/rc.local 中,在末尾加上
复制代码
代码如下:
service crond start
如果还需要在系统启动⼗加载其他服务,可以继续加上其他服务的启动命令。
⽐如:
复制代码
代码如下:
service mysqld start
基本⽤法:
1. crontab -l
列出当前的crontab任务
2. crontab -d
删除当前的crontab任务
3. crontab -e (solaris5.8上⾯是 crontab -r)
编辑⼀个crontab任务,ctrl_D结束
4. crontab filename
以filename做为crontab的任务列表⽂件并载⼊
crontab file的格式:
crontab ⽂件中的⾏由 6 个字段组成,不同字段间⽤空格或 tab 键分隔。前 5 个字段指定命令要运⾏的时间
分钟 (0-59)
⼩时 (0-23)
星期⼏(0-6,其中 0 代表星期⽇)
第 6 个字段是⼀个要在适当时间执⾏的字符串
例⼦:
复制代码
代码如下:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点10分
10 6 * * * date
#每两个⼩时
0 */2 * * * date (solaris 5.8似乎不⽀持此种写法)
#晚上11点到早上8点之间每两个⼩时,早上8点
0 23-7/2,8 * * * date
#每个⽉的4号和每个礼拜的礼拜⼀到礼拜三的早上11点
0 11 4 * mon-wed date
#1⽉份⽇早上4点
0 4 1 jan * date
补充:在使⽤crontab的时候,要特别注意的是运⾏脚本中能够访问到的环境变量和当前测试环境中的环境变量未必⼀致,⼀个⽐较保险的做法是在运⾏的脚本程序中⾃⾏设置环境变量(export)
(1)先建⼀个⽂件如下,每天早上5点36分重新启动
36 5 * * * reboot
(2)上传到/opt⽬录
(3)运⾏命令
crontab /
crontab -l
让配置⽂件⽣效:如果让配置⽂件⽣效,还得重新启动cron,切记,既然每个⽤户下的cron配置⽂件修改后。也要重新启动cron服务器。
在Fedora 和Redhat中,我们应该⽤;
[root@localhost ~]# /etc/init.d/crond restart
如果让crond 在开机时运⾏,应该改变其运⾏级别;
[root@localhost ~]# chkconfig --levels 35 crond on
service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它, cron服务是⼀个定时执⾏的服务,可以通过crontab 命令添加或者编辑需要定时执⾏的任务
下⾯是⼀个例⼦⽂件:
复制代码
代码如下:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点
106* * * date
#每两个⼩时
0*/2* * * date
#晚上11点到早上8点之间每两个⼩时,早上部点
0 23-7/2,8* * * date
#每个⽉的4号和每个礼拜的礼拜⼀到礼拜三的早上11点
0 11 4* mon-wed date
#1⽉份⽇早上4点
0 4 1 jan* date
范例
lark:~>crontab-1 列出⽤户⽬前的crontab.
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6* * * date
0*/2* * * date
0 23-7/2,8 * * * date
lark:~>
基本格式 :
*****command
分 时 ⽇ ⽉ 周 命令
第1列表⽰分钟1~59 每分钟⽤*或者 */1表⽰
第2列表⽰⼩时1~23(0表⽰0点)
第3列表⽰⽇期1~31
第4列表⽰⽉份1~12
第5列标识号星期0~6(0表⽰星期天)
第6列要运⾏的命令
crontab⽂件的⼀些例⼦:
复制代码
代码如下:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上⾯的例⼦表⽰每晚的21:30重启lighttpd 。</p> <p>45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上⾯的例⼦表⽰每⽉1、10、22⽇的4 : 45重启lighttpd 。</p> <p>10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上⾯的例⼦表⽰每周六、周⽇的1 : 10重启lighttpd 。</p> <p>0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上⾯的例⼦表⽰在每天18 : 00⾄23 : 00之间每隔30分钟重启lighttpd 。</p> <p>0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上⾯的例⼦表⽰每星期六的11 : 00 pm重启lighttpd 。</p> <p>* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每⼀⼩时重启lighttpd</p> <p>* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔⼀⼩时重启lighttpd</p> <p>0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每⽉的4号与每周⼀到周三的11点重启lighttpd</p> <p>0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
⼀⽉⼀号的4点重启lighttpd
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论