Linux定时执行程序

Linux有时一些程序需要定时执行,以保证通过程序获得的信息是最新的,这便要用到crontab命令,crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序,具体讲解如下:

cron服务是一个定时执行的服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它。

crontab基本用法:    

1. crontab -l    列出当前的crontab任务    

2. crontab -d   删除当前的crontab任务

3. crontab -e (solaris5.8上面是 crontab -r)    编辑一个crontab任务,ctrl_D结束   

4. crontab -u   设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数,比如说root查看自己的cron设置:crontab -u root -l    再例如,root想删除fred的cron设置:crontab -u fred -r

5. crontab filename    以filename做为crontab的任务列表文件并载入

crontab文件的格式:  分钟   小时   天   月   星期   要执行的命令(minutes、hours、day of month、month、day of week、 command) 
  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 命令添加或者编辑需要定时执行的任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好,关于您的问题,可以使用 crontab 命令来定时执行命令。具体操作可以参考以下步骤: 1. 打开终端,输入 crontab -e 命令进入编辑模式。 2. 在编辑模式下,输入定时执行命令的规则,例如:每天凌晨 1 点执行命令的规则为 1 * * *。 3. 在规则下方输入要执行的命令,例如:/usr/bin/python /home/user/test.py。 4. 保存并退出编辑模式,即可实现定时执行命令的功能。 希望能够帮到您。 ### 回答2: 在Linux系统中,我们可以使用Cron(定时任务调度程序)来定时执行命令。Cron是一个可以在预定时间自动执行指定任务的守护进程。下面是使用Cron来定时执行命令的步骤: 1. 使用命令crontab -e来编辑定时任务列表。如果是第一次编辑,则可能需要选择一个编辑器(如nano或vi)。 2. 在文本编辑器中,每行写一个定时任务,格式为:分钟 小时 日期 月份 星期 命令。例如,如果想在每天的上午10点执行命令,可以写成:0 10 * * * 命令。 3. 可以使用通配符来表示多个值,例如*表示所有可能的值。所以,* * * * * 命令表示每分钟都执行命令。 4. 可以在每个字段中指定多个值,以逗号隔开。例如,如果想在每天的上午10点和下午2点执行命令,可以写成:0 10,14 * * * 命令。 5. 可以使用特殊符号来指定范围,例如-表示一个范围内的值。所以,如果想在每周一到周五的上午10点执行命令,可以写成:0 10 * * 1-5 命令。 6. 编辑完定时任务列表后,保存并关闭文本编辑器。 7. Cron将定时任务保存在用户的crontab文件中(通常位于/var/spool/cron/user目录下)。 8. 定时任务会在指定的时间自动执行。 通过以上步骤,我们可以在Linux系统中设置定时任务,实现定时执行命令的功能。 ### 回答3: 在Linux系统中,可以使用crontab命令来定时执行命令。 首先,打开终端并以root身份登录系统。然后输入以下命令进行设置: ``` crontab -e ``` 这将打开一个文本编辑器,并展示当前用户的cron定时任务列表。 按照crontab的语法规则,在文件中添加一行定时执行的命令。例如,如果要每天的早上8点执行一个命令,可以添加以下行: ``` 0 8 * * * /path/to/command ``` 其中,0代表分钟数,8代表小时数,*代表任意的日期和月份,/path/to/command代表要执行的命令的路径。 在设置之后,保存文件并退出编辑器。该命令会在每天的早上8点执行。 如果想要了解更多的时间设置选项,可以执行以下命令查看crontab手册: ``` man crontab ``` 另外,如果要删除某个定时任务,可以使用crontab命令的-r选项,如下所示: ``` crontab -r ``` 输入该命令后,会删除当前用户的所有cron定时任务。 总的来说,使用crontab命令可以在Linux系统中轻松地设置定时执行命令。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值