crontab
可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。
定时执行shell
- 首先是编写一个测试脚本
echo "date" > run.sh && chmod +x run.sh
- 设置 crontab 定时任务
# 打开定时任务配置文件
crontab -e
# 在配置文件中写入定时任务的操作, 这里就是指定每天12点定时执行脚本,并把执行脚本的日志写入文件 test.log
0 12 * * * sh run.sh > run.log
crontab命令详解
常用命令
crontab –e //修改 crontab 文件,如果文件不存在会自动创建。
crontab –l //显示 crontab 文件。
crontab -r //删除 crontab 文件。
crontab -ir //删除 crontab 文件前提醒用户。
service crond status //查看crontab服务状态
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
基本格式
* * * * * command
分 时 日 月 周 命令
- 第1列表示分钟 00~59 每分钟用或者 /1表示
- 第2列表示小时 00~23(0表示0点)
- 第3列表示日期 01~31
- 第4列表示月份 01~12
- 第5列标识号星期 0~6(0表示星期天)
- 第6列要运行的命令
此外每一列除了数字,还可以有以下符号:
* 代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
, 代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
- 代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
*/n 代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次
示例
- 在 凌晨00:10运行
10 0 * * * sh test.sh
- 每个工作日23:59都进行备份作业。
59 23 * * 1,2,3,4,5 sh test.sh 或者 59 23 * * 1-5 sh test.sh
- 每分钟运行一次命令
*/1 * * * * sh test.sh
- 每个月的1号 14:10 运行
10 14 1 * * sh test.sh
- 每10分钟定时请求一个地址
0 */10 * * * /usr/bin/curl https://www.aaronyang.cc
错误捕获
- 不输出任何内容
*/1 * * * * /root/XXXX.sh >/dev/null 2>&1 或 */1 * * * * /root/XXXX.sh &>/dev/null //&表示任何内容
- 将正确和错误日志都输出到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1
- 只输出正确日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 或 */1 * * * * /root/XXXX.sh 1> /tmp/load.log //1可以省略
- 只输出错误日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh 2> /tmp/load.log
- ps:/dev/null 代表空设备文件
代表重定向到哪里
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
- ps:/dev/null 代表空设备文件
若文章对你有帮助,可以点赞或打赏支持我们。发布者:SmallA,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/linux-%e5%ae%9a%e6%97%b6%e6%89%a7%e8%a1%8cshell-%e8%84%9a%e6%9c%ac/