小知识: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 > /root/Hello.txt

然后运行crontab -e命令,写入

 
复制代码

代码如下:

*/1 * * * * /root/run_sh/run.sh(一定要绝对路径)

保存退出后执行service crond restart,过一分钟后你就会在/root下看到Hello.txt文件。

 
复制代码

代码如下:

#定时运行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 >> /tmp/ls.txt

编辑/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)

日期 (1-31)

月份 (1-12)

星期几(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)先建一个文件crond.txt如下, 每天早上5点36分重新启动

36 5 * * * reboot

(2)上传到/opt目录

(3)运行命令

crontab /opt/crond.txt

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 。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的1 : 10重启lighttpd 。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启lighttpd

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点之间,每隔一小时重启lighttpd

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号与每周一到周三的11点重启lighttpd

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

一月一号的4点重启lighttpd
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:linux系统没有磁盘碎片整理功能 linux磁盘碎片整理简单方法

2023-6-7 4:11:40

建站知识

小知识:linux删除用户组和inux添加用户组 linux删除用户命令

2023-6-7 4:28:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索