作者 主題: 請教有關於 開機執行 Scripts  (閱讀 4048 次)

0 會員 與 1 訪客 正在閱讀本文。

best6553

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
請教有關於 開機執行 Scripts
« 於: 2009-07-24 20:39 »
各位前輩好:

小弟最近再裝 VMware ESX (RHEL)
參考 Google 爬文抄了一個 Script如下

代碼: [選擇]
#!/bin/sh
PowerOK=true
while true
do
  ping -w 3 168.95.1.1 >/dev/null
  if [ $? = 0 ];then
    echo $?
  else
    poweroff
    PowerOK=false
  fi
  sleep 30
done

這是 Ping 不到自動關機的 Script (UPS 供電時自動關機的另類作法)
如果我想要讓這個 Script 在開機時自動執行
應該要怎麼做呢?
請教一下各位 Linux 前輩與高手們。
« 上次編輯: 2009-07-24 20:45 由 best6553 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請教有關於 開機執行 Scripts
« 回覆 #1 於: 2009-07-24 21:35 »

這應該是 crontab 來作更好?

I am kenduest - 小州

my website: http://kenduest.sayya.org/

best6553

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
回覆: 請教有關於 開機執行 Scripts
« 回覆 #2 於: 2009-07-24 22:19 »
這應該是 crontab 來作更好?

 :D 好。
那把 Script 改成這樣
代碼: [選擇]
#!/bin/sh
ping -w 3 168.95.1.1 >/dev/null
if [ $? = 0 ];then
  echo $?
else
  poweroff
fi
  sleep 30
ping -w 3 168.95.1.1 >/dev/null
if [ $? = 0 ];then
  echo $?
else
  poweroff
fi

然後 crontab -e
*/1 * * * * /home/robo/UPS_Check.sh

是這樣嗎?
有個疑問是這樣做 /var/log/cron 的內容會不會越來越大?會不會出問題?
因為對 Linux 不太熟所以如果這樣做有問題請協助指正。

 ;)
« 上次編輯: 2009-07-25 08:09 由 best6553 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請教有關於 開機執行 Scripts
« 回覆 #3 於: 2009-07-24 22:52 »

不用 1min 就一次
那太短了

間隔要稍微長一點
I am kenduest - 小州

my website: http://kenduest.sayya.org/

best6553

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
回覆: 請教有關於 開機執行 Scripts
« 回覆 #4 於: 2009-07-24 23:29 »
不用 1min 就一次
那太短了
間隔要稍微長一點

好吧,那我改成
代碼: [選擇]
#!/bin/sh
for (( i=1; i<=120; i=i+1 ))
do
  ping -w 1 168.95.1.1  >/dev/null
  if [ $? = 0 ];then
    echo $?
  else
    poweroff
  fi
  sleep 28
done

crontab -e
代碼: [選擇]
* */1 * * * /home/robo/UPS_Check.sh  /dev/null 2>&1

這樣應該沒錯了吧? ;D 一小時一次
老實說 UPS 是偷借別的單位來共用的(使用排插插在一起)
所以不敢讓機器消耗UPS 電池太久,選擇使用 30 秒檢查一次
« 上次編輯: 2009-07-25 08:10 由 best6553 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請教有關於 開機執行 Scripts
« 回覆 #5 於: 2009-07-24 23:36 »

1. 這個排程語法就是每隔 1min 執行而已,不知道你改變哪邊呢 ?

代碼: [選擇]
* */1 * * * /home/robo/UPS_Check.sh
2. 你這樣的排程與你的程式寫法,會導致你的程式重複執行。一會 ps aux 會看到一堆你的 script 都在 run
I am kenduest - 小州

my website: http://kenduest.sayya.org/

best6553

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
回覆: 請教有關於 開機執行 Scripts
« 回覆 #6 於: 2009-07-24 23:48 »

1. 這個排程語法就是每隔 1min 執行而已,不知道你改變哪邊呢 ?

代碼: [選擇]
* */1 * * * /home/robo/UPS_Check.sh
2. 你這樣的排程與你的程式寫法,會導致你的程式重複執行。一會 ps aux 會看到一堆你的 script 都在 run

其實我的用意是要排程 一個小時跑一次,只是 Script 裡面跑 120 個迴圈
我不太確定怎樣新增一小時跑一次的排程,還煩請賜教一下 :) 謝謝。

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請教有關於 開機執行 Scripts
« 回覆 #7 於: 2009-07-24 23:49 »
引用
我不太確定怎樣新增一小時跑一次的排程

代碼: [選擇]
0 * * * * your_program
--
I am kenduest - 小州

my website: http://kenduest.sayya.org/

best6553

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
回覆: 請教有關於 開機執行 Scripts
« 回覆 #8 於: 2009-07-25 08:54 »
引用
我不太確定怎樣新增一小時跑一次的排程

代碼: [選擇]
0 * * * * your_program--

謝謝 k 大

最後改成:
代碼: [選擇]
0 * * * * /home/robo/UPS_Check.sh > /dev/null 2>&1
@reboot /home/robo/UPS_Check.sh > /dev/null 2>&1
這樣對嗎?