赞
踩
在Linux系统中,计划任务一般是由 cron
承担,我们可以把 cron
设置为开机时自动启动。cron
启动后,它会读取它的所有配置文件(全局性配置文件 /etc/crontab
,以及每个用户的计划任务配置文件),然后 cron
会根据命令和执行时间来按时来调用度工作任务。
cron
是一个 linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。由于 cron
是 Linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
- /sbin/service cron start //启动服务
- /sbin/service cron stop //关闭服务
-
- /sbin/service cron restart //重启服务
- /sbin/service cron reload //重新载入配置
/etc/init.d
这个目录是所有服务的脚本,可以通过执行脚本并且加上参数,开启关闭或者重启对应的服务。
cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用 crontab
指令来管理cron机制
crontab参数:
- -u:编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab
- crontab -u 使用者名称
- -l:可以列出crontab的内容
- -r:可以移除crontab
- -e:可以使用系统预设的编辑器,开启crontab
- -i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
示例:
- */5 * * * * 每五分钟执行
- 0 * * * * 每小时执行
- 0 0 * * * 每天执行
- 0 0 * * 0 每周执行
- 0 0 1 * * 每月执行
- 0 0 1 1 * 每年执行
常用命令:
- 重启cron:/etc/init.d/cron restart
- 查看cron:crontab -l
- 查看cron的状态(开启或关闭):service cron status
- 打开cron文件:crontab -e
- 查看cron日志:/var/log/syslog
- minute(分):可以设置0-59分
- hour(小时):可以设置0-23小时
- day of month(日期):可以设置1-31号
- month(月份):可以设置1-12月
- day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一
- "*"代表取值范围内的数字
- "/"代表"每"
- "-"代表从某个数字到某个数字
- ","分开几个离散的数字
创建一个 cron
文件:
- cd ~
- touch ihdu_crontab
编写定时命令:
每5分钟调用对应的python脚本执行一次内网环境下的拨号连接。
*/5 * * * * python3 /home/g2080/ihdu3.py
将 cron
文件添加到定时服务中:
crontab ihdu_crontab
查看定时服务:
crontab -l
启动定时服务:
service cron start
查看定时任务的状态:
service cron status
Bingo! 至此已经成功了~
cron
常用命令参考:
详细的 cron
使用方法可以参考:crontab命令_Linux crontab 命令用法详解:提交和管理用户的需要周期性执行的任务。
- # 将文件中的定时任务添加至服务中
- crontab xk_wangcron
- # 查看添加至服务中的任务【需要2分钟之后才会更新状态】
- crontab -l
- # 修改【增加】定时任务至服务中,不通过刚刚创建xk_wangcron定时任务文件
- crontab -e
- # 启动这些任务
- service cron start
- # 若是修改定时任务内容之后,可以重启定时任务
- service cron restart
- # 查看定时任务的状态
- service cron status
- # 修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;
- # 用以下命令重启rsyslog服务:
- service rsyslog restart;
- # 查看定时任务日志
- cat /var/log/cron.log
- # 查看定时任务日志的最近5个记录
- tail -n 5 /var/log/cron.log
在设置完成定时任务后,我们可能还想要让这个定时任务在每一次机器重启的时候都能够自动开启,而不是仅仅限制于当下运行环境:
这样,通过 sysv-rc-conf
来设置是否开机启动 cron
定时器服务,关于 sysv-rc-conf
的说明可以参考:Ubuntu下使用sysv-rc-conf管理服务_OSKernelLAB-CSDN博客。
可以看到 cron
服务已经设置了开机启动了。
若 cron
服务没有被开启,执行以下代码,将其加入开机自启动:
chkconfig –level 35 crond on
如果想要进一步的自定义开机启动脚本,可以参考:
晒月亮的孩子:Ubuntu18开机自启动脚本zhuanlan.zhihu.com参考资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。