请教MJJ大佬Linux的shell写法

判官 13天前 5

怎么写个定时任务
比如说
每30分钟执行一次 PING 192.168.0.1 通不通  如果通就正常  如果不通就重启 reboot
感觉应该思路应该行得通,但是不会写语句。
最新回复 (14)
  • h20 13天前
    引用 2
    crontab(ping + grep + wc + if)
  • 1652291305 13天前
    引用 3
    我只会 */30 * * * * PING 192.168.0.1
  • FDD 13天前
    引用 4
    直接宝塔,一步到位。
  • 楼主 判官 13天前
    引用 5
    FDD 发表于 2021-2-18 22:53
    直接宝塔,一步到位。
    就是用到宝塔上  但是不会怎么写
  • 楼主 判官 13天前
    引用 6
    FDD 发表于 2021-2-18 22:53
    直接宝塔,一步到位。
    会写定时重启  但是不会写PING 怎么判断
  • Cee 13天前
    引用 7
    判官 发表于 2021-2-18 22:55
    会写定时重启  但是不会写PING 怎么判断
    假设已经获取到当前 Ping IP:
    1. if [[ -f /tmp/ping_ip ]] ; then
    2.   old_ip=$(cat /tmp/ping_ip)
    3. else
    4.   echo "$new_ip" > /tmp/ping_ip
    5. fi
    然后再配合你的定时重启。
  • 楼主 判官 13天前
    引用 8
    Cee 发表于 2021-2-18 23:11
    假设已经获取到当前 Ping IP:
    然后再配合你的定时重启。
    没太看懂  我就是要ping 192.168.0.1   通就完事  不通就reboot  
  • pdd_nb 13天前
    引用 9
    ------------------------------脚本(假设你把它保存在/root/test.sh)----------------------------------
    #!/bin/bash
    ping -c 1 192.168.0.1 > /dev/null
    if [ ! $? -eq 0 ]
    then
        reboot
    fi
    ------------------------------------------------------------
    定时命令:
    */30 * * * * bash /root/test.sh
    (crontab -e这个命令)
    ----------------------------------------------------------
    就ping 了一次,想多ping几次把-c 后面的1改成次数
    默认ping的结果不显示,要显示把> /dev/null 去掉
    over
  • Cee 13天前
    引用 10
    判官 发表于 2021-2-18 23:18
    没太看懂  我就是要ping 192.168.0.1   通就完事  不通就reboot
    我理解错了,我以为是 Ping 的 IP 要是不一致就重启,思路差不多,if 判断。
  • crazywings 13天前
    引用 11
    其实你可以直接用||啊
    ping 192.168.1.123 -c 1 -w 3 || reboot
    &&是前成功执行,||是前失败执行,所以你不需要sh,只要||就行了
  • 楼主 判官 13天前
    引用 12
    pdd_nb 发表于 2021-2-18 23:20
    ------------------------------脚本(假设你把它保存在/root/test.sh)----------------------------------
    ...
    测试成功
    感谢
    这样省事了   不通就自动重启了,不知道为什么有时候断电或者其他原因重启就不通  我需要手工重启,有时重启就好了,有时重启几次才好,反正就是重启就可以解决问题,这样的话我就可以自动任务  不需要我手工解决了。
    感谢各参与帮助回复的MJJ们
  • 楼主 判官 13天前
    引用 13
    crazywings 发表于 2021-2-18 23:34
    其实你可以直接用||啊
    ping 192.168.1.123 -c 1 -w 3 || reboot
    &&是前成功执行,||是前失败执行,所以你不 ...
    我去  你这个更简单了
  • 楼主 判官 13天前
    引用 14
    crazywings 发表于 2021-2-18 23:34
    其实你可以直接用||啊
    ping 192.168.1.123 -c 1 -w 3 || reboot
    &&是前成功执行,||是前失败执行,所以你不 ...
    感谢感谢
    刚才哪个我测试了  的确成功了
    因为没有192.168.0.2   我把地址改成这个   执行一下   然后就重启了
    然后改回192.168.0.1   路由存在的  然后就啥事没有。
    很成功。
  • pdd_nb 13天前
    引用 15
    crazywings 发表于 2021-2-18 23:34
    其实你可以直接用||啊
    ping 192.168.1.123 -c 1 -w 3 || reboot
    &&是前成功执行,||是前失败执行,所以你不 ...
    厉害了兄弟,他说要脚本,我就只往脚本上想的
    忘记了不用写个文件直接在crontab里执行就好了
    学到了学到了哈哈
  • 游客
    16
返回