linux shell 定时任务 批量执行命令并输出

linux shell 定时任务 批量执行命令并输出

前言:由于公司需要每天查看服务器某些服务的状态信息并且要查看的服务又多过。故写个小脚本来批量执行指令并保留输出结果。注:未做指令异常处理(因为指令都是自己执行成功的指令通常不会出现异常就没做处理)我的测试脚本(仅供测试不在意丢失)在tmp下,通常不要放tmp下放在自己建立的脚本目录下比较好,防止丢失。

  1. 脚本1:工具sh(/tmp/test.sh)
    使用方式:/tmp/test.sh “指令1” “指令2” “指令3” ···
    #!/bin/sh
    num=1
    for param in "$@"
    do
       echo "第$num条指令为  $param"
       echo "结果为"
       $param
       echo 
       num=$[ $num + 1 ]
    done
    
  2. 脚本2:调用工具sh的sh(/tmp/cmd.sh)
    使用脚本例子:将执行 free -h、df -h、lsof -i:8080 指令并将结果输出到指定日志文件 /tmp/cmd.log
      #!/bin/sh
      /tmp/test.sh "free -h" "df -h" "lsof -i:8080" > /tmp/cmd.log
    
  3. 设置定时任务
    • 定时每天3点执行
          crontab -e #表示vi 进入定时任务配置文件
          * 3 * * * sh /tmp/cmd.sh#增加一行定时任务每天3点执行
      
    • crontab 详情使用:
       crontab [-u username]    //省略用户表表示操作当前用户的crontab
        -e      (编辑定时任务)
        -l      (列出目前已设置的定时任务)
        -r      (删除定时任务)
      
      我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。
      crontab的命令构成为 时间+任务,其时间有分、时、日、月、周五种,操作符有
      * :取值范围内的所有数字
      / :每过多少个数字
      - :从X到Z
      ,:多个数字
      例子:
      • * * * * * 任务指令每分钟分钟执行一次任务指令
      • 1,15 * * * * 任务指令每小时的第1和第15分钟执行
      • 1,15 2-4 * * * 任务指令在上午2点到4点的第1和第15分钟执行
      • 1,15 2-4 */3 * * 任务指令每隔3天的上午2点到4点的第1和第15分钟执行
      • 1,15 2-4 * * * 1 任务指令每周一上午2点到4点的第1和第15分钟执行
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值