zoukankan      html  css  js  c++  java
  • SunRay4(新蕾4) 定时自动关机方案, Linux后台自动任务crontab实践

    目录:

    1. 需求和思路分析
    2. 具体实现步骤
    3. 理解Crontab
    4. Crontab具体参数详细说明

    最近碰到一个想要实现定时自动关机的功能,关机的指令无非就是:

    • shutdown -h time
    • 调用openwebif的指令  wget -q -O - "http://127.0.0.1/web/powerstate?newstate=1" >/dev/null
    • halt,reboot

    自动调用方式:

    • shutdown 的定时时间参数
    • crontab 添加定时任务 (Prefer)
    • 打开/etc目录,在rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d这几个文件夹内添加开机自动执行的脚本(.sh文件)

    SunRay的linux中集成了enigma2的很多东西,单单执行shutdown -h 容易让SR4的面板不动而后台其实已经shutdown,这时建议先要 killall -9 enigma2 > dev/null。

    这个时候shutdown就无法满足需求了,需要使用crontab添加定时任务。


    • 1. 得出sh文件内容:
    #!/bin/sh
    killall -9 enigma2 > /dev/null 2
    shutdown -h now
    • 2. 创建sh文件。
      • 输入命令
      • 1 cd /usr/script
        2 vi shutdown.sh
        3 输入e
        4 <输入上面那3行代码>
        5 按esc
        6 输入 :wq 保存
    • 3. 添加权限 (赋予执行权限)。
      • chmod +x /usr/script/shutdown.sh
    • 4. 添加到定时任务
      • 1 crontab -c /var/spool/cron/crontabs -e
        2 <添加如下内容:>
        3 0 23 * * * /usr/script/shutdown.sh
        4 按esc
        5 输入 :wq 保存

    上面的步骤就可以实现定时执行关机任务(每天夜里11点关机),当然其他的定时任务也是一样的道理。

    下面分析一下具体的原理,核心命令解释:


    特定介绍一下crontab的理解(来源:http://blog.csdn.net/suer0101/article/details/8052592)

    crond是一个服务,一个守护进程。crond 是linux用来定期执行程序的命令,crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
    
    
    crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
    
    
    按照网上查找的资料执行时经常会碰到这种错误:
    
    
    crontab: chdir(/var/spool/cron/crontabs): No such file or directory
    
    
    所以首先创建这样一个目录吧!
    
    
    #mkdir -p /var/spool/cron/crontabs
    
    
    然后编辑要执行的任务
    
    
    #crontab -e
    
    
    0 */1 * * * /sbin/ntpdate 192.168.1.67 >/dev/null 2>&1 每隔一个小时更新下时间,不打印任何信息
    
    
    最后,执行下
    
    
    #crond
    
    
    此时你会发现/var/spool/cron/crontabs下有一个跟用户名相同的文件,保存着要执行的任务。
    
    
    ps下会发现cron进程已经启动!

    我在SR4中的测试结果是,当-e 添加计划任务碰到错误‘crontab: chdir(/var/spool/cron/crontabs): No such file or directory’

    请使用命令(手工指定一个正确的目录)

    crontab -c /var/spool/cron/crontabs -e

    在紧接着其中的vi界面内,添加 比如(代表每天的23点0分执行):

    0 23 * * * /usr/script/shutdown.sh

     具体参数说明(来源:http://blog.hexu.org/archives/703.shtml)

  • 相关阅读:
    WampServer Mysql配置
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 前10名
  • 原文地址:https://www.cnblogs.com/backuper/p/4399156.html
Copyright © 2011-2022 走看看