Linux下设置定期执行脚本
在Linux下,经常需要定期的执行一些脚本从而来实现一些功能。
在Linux下我们用crontab来实现定期的执行脚本这个功能,下面就介绍一下crontab的使用。以及我遇到的一些问题
一. crontab的使用说明
1. crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类
a. 系统执行的工作,比如垃圾清理,备份
b. 用户自定义的工作,比如每5分钟执行一次脚本
2. crontab是UNIX系统下定期执行任务的触发器。用户把要定期执行的任务记录在这个文件下面,然后crond定期的去检查这个定期执行列表,有要执行的工作时便自动执行。
通过man crontab可以查看到下面的信息
a. /etc/crond.allow 表示的是允许使用crontab的用户列表
b. /etc/crond.deny 表示的是不允许使用crontab的用户列表
3. crontab常用的几个命令格式
crontab -l //显示用户的crontab文件的内容
crontab -e //编辑用户的crontab文件的内容
crontab -r //删除用户的crontab文件
4. crontab文件的基本格式如下所示
* * * * * command
分 时 天 月 周 命令
每列表示意义
a. 第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。
b. 第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。
c. 第三个*表示的是天1~31,默认*表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。
d. 第四个*表示的是月1~12,默认*表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。
e. 第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。
5. crontab文件的一些例子
a. 30 21 * * * /usr/local/etc/rc.dghttpd restart //表示每天21:30重启apache
b. 45 4 1,10,22 * * /usr/local/etc/rc.dghttpd restart //表示每月1,10,22号4:45重启apache
c. 0,30 18-23 * * * /usr/local/etc/rc.dghttpd restart //表示每天18 : 00至23 : 00之间每隔30分钟重启apache
d. * */1 * * * /usr/local/etc/rc.dghttpd restart //表示每一小时重启apache
e. */5 * * * * /usr/local/etc/rc.dghttpd restart //表示每5分钟重启apache
二. 具体例子
1. 首先我在/homeenguolin/tmp/ 创建一个shell脚本名为s.sh。注意脚本内部的路径使用绝对路径。
这个脚本的功能就是把当前的日期输出重定向到当前目录下的out文件
2. 然后设置每2分钟执行一次这个脚本,>/dev/null 2>&1。原因是因为系统会在每次执行完任务之后就发一个邮件告诉用户,通过这个操作可以把信息全部重定向到/dev/null中,/dev/null这个文件类似回收站过一段时间系统自动清理。
*/2 * * * * sh /homeenguolin/tmp/s.sh >/dev/null 2>&1
然后发现过了n个2分钟,out文件根本就没有输出。
3. 在谷歌/百度无果之后,问了同事,得到了原因是因为crontab可能有时候没有办法执行用户家目录下面的两个文件,分别是.bashrc和.bash_profile
这两个文件的作用如下
.bashrc作用是用于你的bash shell的bash信息,当登录时及每次打开新的shell时,该文件被读取;
.bash_profile作用是每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件,
因此我们要手动在crontab文件中添加source /homeenguolin/.bashrc && source /homeenguolin/.bash_profile
source的作用是当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。
因此crontab文件中变成
*/2 * * * * source && /homeenguolin/.bashrc && source /homeenguolin/.bash_profile && sh /homeenguolin/tmp/s.sh >/dev/null 2>&1
4. 发现可以定时的执行脚本。
如果还不行,那只能通过查找log来查错。非ubuntu的Linux crond的日志文件保存在ar/log下
三. ubuntu下使用crontab定时执行脚本
注意下几个问题以
1. ubuntu下crontab的服务程序是cron,并且默认cron服务的log是没有的,我们必须手动开启
a. sudo vim /etc/rsyslog.d/50-default.conf
b. 找到cron.*那一行把注释去掉
c. 然后重启cron服务 sudo service cron restart
d. 这样就可以在ar/log里面发现有cron的日志文件了,我们就可以通过查看日志文件找到问题所在
2. ubuntu下,用户家目录下是没有.bash_profile文件的,并且会自动去执行.bashrc文件,只要写成下面这样即可
*/2 * * * * sh /homeenguolin/tmp/s.sh >/dev/null 2>&1
本文来自系统大全为您提供如需转载请注明!推荐win10下载
相关文章
- 微软 Win11 Canary 预览版 27975 发布!附补丁文件下载
- 仅影响商店应用!Win11 微软商店取消永久停更,仅支持 1-5 周暂停
- 微软 Win11 23H2 RP 22631.6132 预览版发布!更新内容一览
- 微信电脑版 4.1.2 正式版发布:删好友可留记录
- 微软发布紧急带外更新 KB5070773 修复 WinRE USB 键鼠失灵
- Windows11 25H2镜像文件下载地址
- 英特尔发布 32.0.101.8136 显卡驱动!附文件下载
- 微软 Win11 24H2 推送 9 月可选更新补丁 KB5065789!
- 微软Win11 Dev 26220.6760(KB5065793)发布!附补丁文件下载
- 微软 Win11 Beta 预览版 Build 26120.6760 发布!
系统下载排行榜71011xp
番茄花园 Win7 64位 快速稳定版
2【纯净之家】Windows7 64位 全新纯净版
3【纯净之家】Windows7 SP1 64位 全补丁旗舰版
4JUJUMAO Win7 64位 最新纯净版
5【纯净之家】Windows7 32位 全新纯净版
6【纯净之家】Win7 64位 Office2007 办公旗舰版
7【雨林木风】Windows7 64位 装机旗舰版
8【电脑公司】Windows7 64位 免费旗舰版
9JUJUMAO Win7 64位旗舰纯净版
10【深度技术】Windows7 64位 官方旗舰版
【纯净之家】Windows10 22H2 64位 专业工作站版
2【纯净之家】Windows10 22H2 64位 游戏优化版
3【纯净之家】Windows10 企业版 LTSC 2021
4【纯净之家】Windows10企业版LTSC 2021 纯净版
5【深度技术】Windows10 64位 专业精简版
6联想Lenovo Windows10 22H2 64位专业版
7JUJUMAO Win10 X64 极速精简版
8【雨林木风】Windows10 64位 专业精简版
9深度技术 Win10 64位国庆特别版
10【纯净之家】Win10 64位 Office2007 专业办公版
【纯净之家】Windows11 23H2 64位 游戏优化版
2【纯净之家】Windows11 23H2 64位 专业工作站版
3【纯净之家】Windows11 23H2 64位 纯净专业版
4风林火山Windows11下载中文版(24H2)
5【纯净之家】Windows11 23H2 64位 企业版
6【纯净之家】Windows11 23H2 64位 中文家庭版
7JUJUMAO Win11 24H2 64位 专业版镜像
8【纯净之家】Windows11 23H2 64位专业精简版
9【纯净之家】Windows11 23H2 64位 纯净家庭版
10Windows11 23H2 64位 官方正式版 V22631.6060
深度技术 GHOST XP SP3 电脑专用版 V2017.03
2深度技术 GGHOST XP SP3 电脑专用版 V2017.02
3Win7系统下载 PCOS技术Ghost WinXP SP3 2017 夏季装机版
4番茄花园 GHOST XP SP3 极速体验版 V2017.03
5萝卜家园 GHOST XP SP3 万能装机版 V2017.03
6雨林木风 GHOST XP SP3 官方旗舰版 V2017.03
7电脑公司 GHOST XP SP3 经典旗舰版 V2017.03
8雨林木风GHOST XP SP3完美纯净版【V201710】已激活
9萝卜家园 GHOST XP SP3 完美装机版 V2016.10
10雨林木风 GHOST XP SP3 精英装机版 V2017.04
热门教程
装机必备 更多+
重装工具