Linux定时任务与开机自启动脚本(cron与crontab)

开机自启动脚本

网上常见的脚本开机自启方法是:

假设要自启的脚本位于 /home/user/test.sh

  • 给脚本可执行的权限
sudo chmod +x /home/user/test.sh
  • 将脚本文件放到 /etc/init.d/ 目录下
sudo cp /home/user/test.sh /etc/init.d
  • 链接到/etc/rc.d/
sudo ln -s /etc/init.d/start_my_app /etc/rc.d/

这样在新的diban系统中可能不能生效,要LSB 兼容之类 ,脚本还要提供start, stop, restart, force-reload,等命令,具体参考
https://wiki.debian.org/LSBInitScripts


因此这里推荐使用另外一种超级简单的方法:

bash中输入(推荐以管理员的状态)

crontab -e

第一次使用这个的话,会提示选择一种编辑器,根据个人喜好选择吧。然后就会进入对应编辑器的编辑界面,另起一行输入

@reboot /home/user/test.sh 

reboot 后面即脚本文件位置,然后保存即可。Ok,脚本现在已经会在开机时自动运行了。

定时任务

同样的bash里输入 crontab -e

然后编辑界面加上具体的命令语句。基本语法为

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

比如:
每天的凌晨4点半运行test.sh脚本

30 04 * * * /home/user/test.sh

每周的周一17:30执行test.sh脚本

30 17 * * 1 /home/user/test.sh

或间隔15分钟执行一次test.sh脚本

*/15 * * * * /home/user/test.sh

这个指在9:05 至17:05的范围内,每个钟头的过5分会运行一次,比如10:05、11:05会运行

05 09-17 * * * /home/user/test.sh

关于

bash中输入

service --status-all

会发现有个cron,。就是cron 这个服务实现了前文中那些定时任务。而cron也是在/etc/init.d/中注册从而自启的,启动后它会扫描/var/spool/cron 、/etc/cron.d目录和 /etc/anacrontab文件,扫描到的文件中定义了各种定时任务。

另外关于crontab命令,: 后面的tab其实就相当table的缩写,因为系统中的每个用户(包括管理员)都会有一个对应的cron 文件,位于 /var/spool/cron/crontabs/ 目录下,因此table可以简单理解为管理这些用户cron文件的表。需要注意的是不要直接修改用户对应的cron文件,而应该使用 crontab -e 命令修改,因为这样修改保存后,它会立即生效。

转载于:https://www.cnblogs.com/asche/p/10240994.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值