Ubuntu下的定时功能

最近因为要部署服务器上的一个服务,但是该服务不太稳定,有时候会因为莫名其妙的原因退出后台进程,于是每次服务掉线的时候就要登上服务器手动重新开启,很是麻烦,所以就想能不能写个定时脚本不断监测进程,如果进程不存在则重新启动服务,于是了解了一下Ubuntu下的定时功能。

Ubuntu下的定时功能一般都是通过系统服务cron来实现的:

  1. crontab -l:列出当前用户的定时任务。
  2. crontab -e:编辑当前用户的定时任务。
  3. crontab -u xxxxx:对某用户的任务进行操作。
  4. crontab -r:删除定时任务。

上述命令如果没有加-u参数的话默认对当前执行命令的用户的定时任务进行操作。

第一次编辑当前用户的定时任务的时候,开始会让你选择编辑内容所用的编辑器。(我一般用的都是vim)

在编辑完毕,保存退出之后,需要重启cron服务来使其生效:

  1. service cron restart:重启cron服务。
  2. service cron reload:重新加载cron服务的配置。
  3. service cron stop:停止cron服务。
  4. service cron start:启动cron服务。

可以使用pgrep cron来查看cron的pid,如果有结果输出,说明cron是运行的,反之则没有运行。

 

好了!终于来到定时任务内容格式方面的说明了!

定时任务的格式其实很简单,每一行都是1个任务,每行有6个内容,每个内容以空格间隔开,从左到右每个内容含义分别为:

  1. 分钟(0-59),表示在每个小时的第几分钟执行。
  2. 小时(1-23),表示在每天的第几个小时执行。
  3. 天(1-31),表示在每月的第几天执行。
  4. 月(1-12),表示在每年的第几月执行。
  5. 星期(0-6),表示在每周的第几天执行,0代表周日。
  6. 要执行的任务。

在前5个字段中,如果为*的话则表示“每”,即每分钟,每小时,每周,每天等等。

比如说* * * * * echo "hello"表示每分钟执行1次echo "hello"这个任务,再比如说1 2 3 * * echo "hello"表示每月的第3天中,第2个小时的第1分钟执行echo "hello"这个任务,依此类推,大概就是这样。

不过值得注意的是,在最后的要执行的任务那里,如果命令太多,可以考虑写在一个脚本当中,然后调用脚本即可,这里需要注意的是调用脚本需要写全路径,cron服务在执行定时任务的时候在服务本身的一个特定的目录下,并不在其他的某些目录下,所以需要使用全路径调用。另外就是在执行命令的时候并不会有某些特殊的权限,其使用bin/sh来执行命令,如果希望执行的命令本身具有某些权限,需要在任务中自行加上sudo命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值