配置定时任务
1、使用crontab -e 在后面增加指令
注意,这个仅仅为该角色下配置的定时任务
2、vim /etc/crontab 在后面增加指令
crontab具体语法:
如有多个不同时间需求,需使用”,”隔开
1 2 3 4 5 6 7 8 9
| * * * * * - - - - - | | | | | | | | | +----- 星期中星期几 (0 - 6) (星期天 为0) | | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天 (1 - 31) | +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59)
|
指令语法示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| 实例1:每1分钟执行一次myCommand * * * * * myCommand
实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb 0 */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart
|
重启服务
service cron restart
脚本参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #!/bin/sh ### # @Author: axj # @Date: 2023-02-06 10:25:13 # @LastEditTime: 2023-02-20 16:58:50 # @FilePath: /cs_document/liugw/学习文档/cs_battery_test.sh # @Description: ### . /etc/profile
export PATH=$PATH:/usr/bin/zenity #XAUTHORITY=/home/csxd/.Xauthority export DISPLAY=:0.0 export HOME=/ export SHELL=/bin/bash FILE=/sys/class/power_supply/BAT/capacity ONLINE_FILE=/sys/class/power_supply/gpio-charger/online
NUM=10 if [ -f "$FILE" ];then BAT=`cat /sys/class/power_supply/BAT/capacity` else BAT=100 fi
if [ -f "$ONLINE_FILE" ];then ONLINE=`cat /sys/class/power_supply/gpio-charger/online` else ONLINE=0 fi
echo $BAT echo $ONLINE
if [ $BAT -lt 3 ] && [ $BAT -gt 0 ] && [ $ONLINE -eq 0 ];then shutdown -h now elif [ $BAT -lt $NUM ];then /usr/bin/zenity --warning --text "电池电量不足,请及时充电" else echo "bat = $BAT" >> /test.txt fi
|
注意事项
配置定时任务后可能会未执行,需要注意以下几点
1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。
2、在 shell 脚本开头使用以下代码:
1 2 3 4 5
| #!/bin/sh . /etc/profile # 声明程序相关的环境变量 export xxxxx
|
3、执行的程序也需要绝对路径
20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh