1. 程式人生 > 其它 >Expect+Shell 定時重啟山石防火牆

Expect+Shell 定時重啟山石防火牆

expect

安裝expect

yum install expect

expect說明

shell指令碼

儲存位置/home/script/test.sh

#!/usr/bin/expect -f
set timeout -1
spawn ssh hillstone@IP_Addr
expect "*password*"
send "[YOUR PASSWORD]\r"
expect "*#"
send "reboot\r"
expect "*\[y\]/n:"
send "y\r"
expect eof
exit

Crontab

檢查Crontab狀態

[root@MiWiFi-R1CM-srv script]# systemctl status crond.service 
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2021-11-09 12:03:58 CST; 2min 31s ago
 Main PID: 20411 (crond)
    Tasks: 1
   Memory: 1.3M
   CGroup: /system.slice/crond.service
           └─20411 /usr/sbin/crond -n

11月 09 12:03:58 MiWiFi-R1CM-srv systemd[1]: Started Command Scheduler.
11月 09 12:03:58 MiWiFi-R1CM-srv systemd[1]: Starting Command Scheduler...
11月 09 12:03:58 MiWiFi-R1CM-srv crond[20411]: (CRON) INFO (RANDOM_DELAY will be scaled with factor...d.)
11月 09 12:03:58 MiWiFi-R1CM-srv crond[20411]: (CRON) INFO (running with inotify support)
11月 09 12:03:58 MiWiFi-R1CM-srv crond[20411]: (CRON) INFO (@reboot jobs will be run at computer's ...p.)
11月 09 12:05:01 MiWiFi-R1CM-srv crond[20411]: (root) RELOAD (/var/spool/cron/root)
Hint: Some lines were ellipsized, use -l to show in full.

增加Crontab任務

crontab -e
6 12 9 * * /home/script/test.sh

備註

expect特殊字元轉義

  1. expect需要轉義的字串

    1、 \ 需轉義為 \
    2、 } 需轉義為 }
    3、 [ 需轉義為 [
    4、 $ 需轉義為 \$
    5、 ' 需轉義為 \'
    6、 " 需轉義為 \"

  2. send轉義
    在特殊字元前加\完成轉義