Linux 定时执行shell 脚本「建议收藏」

Linux 定时执行shell 脚本「建议收藏」2019年第85篇文章,总第109篇文章本文大约2000字,阅读大约需要6分钟crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令。定时执行sh…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

2019年第 85 篇文章,总第 109 篇文章

本文大约2000字,阅读大约需要6分钟

crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。

定时执行shell 脚本

简单给出执行 shell 脚本的步骤。

  1. 首先是编写一个测试脚本–test.sh

# 创建脚本
$ vim test.sh
# 在脚本中做写入文件操作
date >> data.txt
  1. 修改脚本的权限,确保脚本有执行的权限

chmod 777 test.sh
  1. 设置 crontab 定时任务

# 打开定时任务配置文件
crontab -e
# 在配置文件中写入定时任务的操作, 这里就是指定每天12点定时执行脚本,并把执行脚本的日志写入文件 test.log
0 12 * * * sh test.sh > test.log
  1. 保存退出,也就是 :wq

  2. 如果有错,linux 会在执行的时候发送一份邮件给你

cat /var/spool/mail/root

注意:

crontab 是运行在系统默认环境里,如果运行的脚本是执行 python 代码,即脚本的内容可能是:

python test.py

这里的 python 会是系统默认的 python 版本,而如果你是运行在 conda 环境里,那么这里就需要采用当前环境里 python 版本的执行文件的绝对路径,即先用以下命令查找当前 python 版本的执行文件位置:

$ which python
# 假设输出的文件位置为:
/root/anaconda3/py3/bin/python

这里输出的路径,直接替换脚本里的 python:

/root/anaconda3/py3/bin/python test.py

这样才能保证运行不出错,否则可能因为版本问题出错;


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     //重新载入配置

所以如果需要取消某个定时任务,就是可以删除在配置文件中的对应命令,即 crontab -e 打开文件,然后删除对应哪行的命令即可

基本格式

*  *  *  *  *  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分钟执行一次

示例

1、在 凌晨00:10运行

10 0 * * * sh test.sh

2、每个工作日23:59都进行备份作业。

59 23 * * 1,2,3,4,5 sh test.sh   
或者  
59 23 * * 1-5 sh test.sh

3、每分钟运行一次命令

*/1 * * * * sh test.sh

4、每个月的1号 14:10 运行

10 14 1 * * sh test.sh

5、每10分钟定时请求一个地址

0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php

注意,一般最好不要同时采用几号和每周几,可能会出现混淆;

正确、错误日志的输出是否写入到文件方法

1.不输出任何内容(建议使用方法一)

*/1 * * * * /root/XXXX.sh >/dev/null 2>&1 
或
*/1 * * * * /root/XXXX.sh &>/dev/null    //&表示任何内容

2.将正确和错误日志都输出到 /tmp/load.log

*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1

3.只输出正确日志到 /tmp/load.log

*/1 * * * * /root/XXXX.sh > /tmp/load.log
或
*/1 * * * * /root/XXXX.sh 1> /tmp/load.log    //1可以省略

4.只输出错误日志到 /tmp/load.log

*/1 * * * * /root/XXXX.sh 2> /tmp/load.log

部分解释:

/dev/null 代表空设备文件
> 代表重定向到哪里
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

参考文章:

  • Linux 定时执行shell脚本命令之crontab:https://www.cnblogs.com/wenzheshen/p/8432588.html

  • linux定时执行sh文件:https://blog.csdn.net/IT_xiaocao/article/details/78206364


欢迎关注我的微信公众号–算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!

Linux 定时执行shell 脚本「建议收藏」

如果觉得不错,在看、转发就是对小编的一个支持!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java教程安装_java 安装教程

    java教程安装_java 安装教程直接运行exe可执行程序,默认安装即可;备注:路径可以选其他盘符,不建议路径包含中文名及特殊符号。3、配置环境变量1)新建变量名:JAVA_HOME,变量值:C:\ProgramFiles\Java\jdk1.8.0_112)打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin3)新建变量名:CLASSPATH,变量值:.;%JAVA_HOME%…

    2022年7月8日
    27
  • c语言delay函数的作用,delay用法(delay函数使用)「建议收藏」

    c语言delay函数的作用,delay用法(delay函数使用)「建议收藏」是delaytodo还是delaydoing还是delaydo?还是什么啊~~问下delayvt.延期,延缓;推迟Wedecidedtodelayourholidayuntilnextmonth.我们决定将休假延至下个月。所以应该是delaydoing函数名:delay功能:将程序的执行暂停一段时间(毫秒)用法:voiddelay(uns…

    2022年6月2日
    144
  • 关于微信网页版WeChat不能正常登录的最佳解决方案

    关于微信网页版WeChat不能正常登录的最佳解决方案 因为出于工作和学习的目的,我的个人电脑操作系统使用的是Ubuntu18.04LTS,就目前而言,许多优秀的软件都有Linux版本,虽然Linux的用户相对群体较小,但是其软件生态也在逐渐成长,而且日常使用浏览器就可以解决许多的应用需求。现在微信和QQ在生活和工作领域均是举足轻重,emm…  BUT!!!腾讯到目前为止并没有推出Linux版的微信和TI…

    2022年5月11日
    82
  • 项目管理知识体系五大过程组(项目管理10大知识领域)

    信息系统项目管理师属于计算机技术与软件专业技术资格(水平)考试五大高级资格考试中的一项,是信息系统建设领域的高级项目经理资质申报的直接性前提条件。通过本考试的合格人员能够掌握信息系统项目管理的知识体系,具有高级工程师的实际工作能力和业务水平。通过本考试的基本用途有以下2个:1、评职称:此证书在国企和事业单位可以评职称。2、申报项目经理:此证书可在自己所在企业申报系统集成项目经理,如果…

    2022年4月11日
    97
  • mediumtext_text长度不够用,改为mediumtext感觉 又太大,有没什么方法?

    mediumtext_text长度不够用,改为mediumtext感觉 又太大,有没什么方法?楼主先要搞清楚,text和longtext这些都是可变长度的字段类型.这是phpMyAdmin里的说明:text:最多存储65535(2^16-1)字节的文本字段,存储时在内容前使用2字节表示内容的字节数.longtext:最多存储4294967295字节即4GB(2^32-1)的文本字段,存储时在内容前使用4字节表示内容的字节数.也就是说,你在longtext类型的字段里只存1个字符,占用空…

    2022年5月1日
    80
  • 斐波那契数列介绍

    斐波那契数列介绍

    2021年9月27日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号