Linux 定时执行shell 脚本

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

定时执行shell

  1. 首先是编写一个测试脚本
echo "date" > run.sh && chmod +x run.sh
  1. 设置 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分钟执行一次

示例

  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 https://www.aaronyang.cc

错误捕获

  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
    • ps:/dev/null 代表空设备文件

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

若文章对你有帮助,可以点赞或打赏支持我们。发布者: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/

(0)
SmallA的头像SmallA认证作者
上一篇 2023年 10月 25日 下午10:52
下一篇 2023年 12月 5日 下午4:38

相关推荐

  • 生成CA证书

    生成服务器CA证书 在配置HTTPS监听时,您可以使用自签名的CA证书,并且使用该CA证书为客户端证书签名。 执行以下命令,在/home目录下新建一个ca文件夹,并在ca文件夹下创…

    2023年 5月 9日
  • PPTP搭建与连接

    文章目录方法一准备工具搭建pptp服务器方法二在windows下建立vpn连接在linux下建立连接 方法一 准备工具 具备公网ip的电脑 系统:centos 环境:docker、…

    2023年 12月 5日
  • Docker 存储目录的平滑迁移

    文章目录docker 目录的迁移迁移准备常用运维指令迁移停止docker服务创建新的目录或磁盘目录相关指令磁盘相关指令删除磁盘分区格式化硬盘建立挂载目录挂载硬盘卸载磁盘从旧目录迁移…

    2021年 11月 4日
  • 2.1 使用 systemd

    这个示例将会演示在 Linux 系统下使用 systemd 控制 frps 及配置开机自启。 在 Linux 系统下,使用systemd 可以方便地控制 frp 服务端 frps …

    2023年 3月 2日
  • 为wordpress新增ip和port日志

    应网安要求,需要对用户日志进行扩增,对用户日志新增端口和port记录 文章目录操作大功告成也可以追加如下字段 操作 找到页面文件目录,在wp-includes/funcitons.…

    2023年 2月 26日
  • Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题分享]

    1.下列哪一个不是重置ECS密码的步骤? A.查看实例详情 B.进入控制台 C.远程连接ECS D.点击控制台“概览” 2.云服务器ECS以服务化的方式对客户提供,阿里云产品售后支…

    技术分享 2023年 2月 4日
  • Linux 双机热备

    文章目录Rsync概述什么是Rsyncrsync特性传输方式rsync拉复制实战Rsync推复制 Rsync概述 什么是Rsync rsync是一款开源,快速,多功能的可实现增量的…

    2023年 6月 7日
  • 如何让自己的模糊视频变高清(4K)?

    有些视频是不是看着很模糊,又不忍心丢掉。比如一段回忆,一个瞬间。下面安利一个很好用的软件,可以通过使用AI深度学习能力,将视频像素进行提升。 文章目录演示视频此软件对电脑要求较高,…

    2021年 7月 29日
  • requests.models.Response的常用属性

    背景:做request 请求的时,返回数据为requests.models.Response。我们需要对返回结果做处理 Response响应的常用属性: response.text…

    技术分享 2023年 3月 7日
  • 4. FRP概念

    文章目录通过 SSH 访问内网机器通过自定义域名访问内网的 Web 服务转发 DNS 查询请求转发 Unix 域套接字对外提供简单的文件访问服务为本地 HTTP 服务启用 HTTP…

    2023年 3月 2日
Translate »