PCZONE 討論區

PCZONE 討論區 (https://www.pczone.com.tw/vbb3/)
-   -- FreeBSD & Linux 討 論 版 (https://www.pczone.com.tw/vbb3/forum/41/)
-   -   重新啟動網路的『script』... (https://www.pczone.com.tw/vbb3/thread/41/25085/)

Man 2001-12-23 04:22 PM

重新啟動網路的『script』...
 
各位好~
我是用 Redhat Linux 7.0 的...
想寫一個每兩小時重新啟動網路的『script』,應該如何呢?
------------------------------------------------------
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1
"這裡應該用什麼 command 令它每兩小時重新執行呢?"
------------------------------------------------------
希望各位能指點指點!謝謝...:D

repsol 2001-12-23 06:46 PM

man crontab

阿 土 2001-12-23 11:22 PM

Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 Man 發表[/i]
[B]各位好~
我是用 Redhat Linux 7.0 的...
想寫一個每兩小時重新啟動網路的『script』,應該如何呢?
------------------------------------------------------
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1
"這裡應該用什麼 command 令它每兩小時重新執行呢?"
------------------------------------------------------
希望各位能指點指點!謝謝...:D [/B][/QUOTE]

寫個 shell 命名為 net.sh

ee /usr/local/net.sh

內容為:
[CODE]
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1[/CODE]

**********************************

編輯 /etc/crontab 設定 2hr 重新啟動

ee /etc/crontab

並加入以下這一行到最後並存檔

[CODE]* 2 * * * root /usr/local/net.sh[/CODE]

把 crontab 重新啟動或重開機後應該就可以了

有點好奇 , 為何兩小時要把網路卡重新啟動一次呢 ?

lionel_lo 2001-12-23 11:35 PM

還要加上執行的權限
chmod a+x net.sh
:D :D

Man 2001-12-24 11:28 AM

Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 阿 土 發表[/i]
[B]

寫個 shell 命名為 net.sh

ee /usr/local/net.sh

內容為:
[CODE]
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1[/CODE]

**********************************

編輯 /etc/crontab 設定 2hr 重新啟動

ee /etc/crontab

並加入以下這一行到最後並存檔

[CODE]* 2 * * * root /usr/local/net.sh[/CODE]

把 crontab 重新啟動或重開機後應該就可以了

有點好奇 , 為何兩小時要把網路卡重新啟動一次呢 ? [/B][/QUOTE]

嗯~我想我明了,多謝你們的指點...

另外,我想問問...
我這樣直接修改『/etc/crontab』和我使用 root 的身份執行『crontab -e』、加入這行
『* 2 * * * root /usr/local/net.sh』
是有沒有分別的呢?結果是不是都是一樣呢?
不太明白『crontab -e』和手動修改『/etc/crontab』的分別...
希望各位能指點指點!謝謝...

嗯~我要每隔每小時重新啟動網路,是因為最近不知是網路卡抑或是 cable modem 常斷線,連 IP 也沒有...所以想試試用各種方法測試是網路卡問題抑或是 cable modem 問題呢...
:D

lionel_lo 2001-12-24 11:51 AM

不太明白『crontab -e』和手動修改『/etc/crontab』的分別...

前者是系統自己的
後者是每個使用者的

Man 2001-12-24 03:02 PM

[QUOTE][i]最初由 lionel_lo 發表[/i]
[B]不太明白『crontab -e』和手動修改『/etc/crontab』的分別...

前者是系統自己的
後者是每個使用者的 [/B][/QUOTE]

嗯~多謝你的指點...
但我依稀記得好像『crontab -e』是給使用者自訂的...
而『/etc/crontab』是設定給整個系統的...
究竟...應該是怎樣呢?
而且當我以 root 的身份執行『crontab -e』、在上面加上設定又和我直接修改
『/etc/crontab』有什麼分別呢?
希望各位能指點指點!謝謝...

CrownJJ 2001-12-24 03:24 PM

Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 阿 土 發表[/i]
[B]
並加入以下這一行到最後並存檔
[CODE]* 2 * * * root /usr/local/net.sh[/CODE]
[/B]
[/QUOTE]

這樣會「每天兩點的每一分鐘」都去執行/usr/local/net.sh 這個指令...
redhat系統已內建啟動網路的Script,試試下面這個:
0 */2 * * * root /etc/rc.d/init.d/network restart

/etc/crontab主要是給一些系統及軟體使用的定期排程,
和給一般使用者的crontab -e分隔開來...

Man 2001-12-24 03:36 PM

Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 CrownJJ 發表[/i]
[B]

這樣會「每天兩點的每一分鐘」都去執行/usr/local/net.sh 這個指令...
redhat系統已內建啟動網路的Script,試試下面這個:
0 */2 * * * root /etc/rc.d/init.d/network restart

/etc/crontab主要是給一些系統及軟體使用的定期排程,
和給一般使用者的crontab -e分隔開來... [/B][/QUOTE]

嗯~多謝你的指導~
我想我明白了...:rolleyes:

rs125 2001-12-26 10:49 AM

Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 Man 發表[/i]
[B]

嗯~我想我明了,多謝你們的指點...

另外,我想問問...
我這樣直接修改『/etc/crontab』和我使用 root 的身份執行『crontab -e』、加入這行
『* 2 * * * root /usr/local/net.sh』
是有沒有分別的呢?結果是不是都是一樣呢?
不太明白『crontab -e』和手動修改『/etc/crontab』的分別...
希望各位能指點指點!謝謝...

嗯~我要每隔每小時重新啟動網路,是因為最近不知是網路卡抑或是 cable modem 常斷線,連 IP 也沒有...所以想試試用各種方法測試是網路卡問題抑或是 cable modem 問題呢...
:D [/B][/QUOTE]
如果直接修改的話並不會馬上載入新值...要等到下次重開後才會載入新值...
而用"-e"參數修改則直接載入新值...
如果要啟用最新的設定可用ps指令找出cron的job number將其kill則系統會在載入新值...

ADJ 2001-12-30 02:55 PM

Re: Re: Re: Re: 重新啟動網路的『script』...
 
這個問題之前也曾遇過..找了一些資料..
可以讓ADSL不斷線的script..大家可以
參考看看..

[URL=http://www.adj.idv.tw/phpBB2/viewforum.php?f=7]ADSL不斷線script[/URL]

VBird 2002-01-01 09:57 PM

Re: Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 rs125 發表[/i]
[B]
如果直接修改的話並不會馬上載入新值...要等到下次重開後才會載入新值...
而用"-e"參數修改則直接載入新值...
如果要啟用最新的設定可用ps指令找出cron的job number將其kill則系統會在載入新值... [/B][/QUOTE]
你好:

似乎並非如此,只要你在 /etc/crontab 內修改完成,並且儲存之後,你的 cron 設定,就已經開始在跑了!而不需要重新開機。

另外,/etc/crontab 這個檔案主要是給系統在作運作的,這點沒有疑問,而crontab -e 這個指令是給一般用戶進行 cron 的時間排成設定的,當然囉, root 也可以使用。不過 crontab -e 這個指令下達之後,如果你真的有編寫指令的話,那麼你的設定檔好像是存在 /tmp 底下吧!

如果對於 crontab 有興趣的話,不妨來底下的網頁看看:
[url]http://aerosol.ev.ncku.edu.tw/~vbird/linux/linux_11cron.html[/url]

VBird 2002-01-01 10:05 PM

喔!忘了提到了!如果你是使用動態 IP 架站的話,那麼登錄到動態 DNS 主機的 scripts 絕對是必須的,果真如此的話,建議到底下的網頁上看看:

[url=http://aerosol.ev.ncku.edu.tw/~vbird/linux/linux_23dynamicDNS.html]動態 DNS 偵測技巧[/url]

repsol 2002-01-02 12:04 AM

Re: Re: Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 VBird 發表[/i]
[B]
你好:

似乎並非如此,只要你在 /etc/crontab 內修改完成,並且儲存之後,你的 cron 設定,就已經開始在跑了!而不需要重新開機。

另外,/etc/crontab 這個檔案主要是給系統在作運作的,這點沒有疑問,而crontab -e 這個指令是給一般用戶進行 cron 的時間排成設定的,當然囉, root 也可以使用。不過 crontab -e 這個指令下達之後,如果你真的有編寫指令的話,那麼你的設定檔好像是存在 /tmp 底下吧!

如果對於 crontab 有興趣的話,不妨來底下的網頁看看:
[url]http://aerosol.ev.ncku.edu.tw/~vbird/linux/linux_11cron.html[/url] [/B][/QUOTE]

crontab -e 存下來的東西會出現在/var/spool/cron這個目錄下(必須要用root身分,才能進到這個目錄),會以ID的方式存放出現..可以用more去看他的內容...會發現就是crontab -e 編輯出來的東西,,

舉個例子來說..如果是以pczone這個id 執行crontab -e 編輯自己的cron job...
0 23 * * * df -k > /tmp/df.txt
存檔後離開...
/var/spool/cron/下...就會出現一個pczone這樣一個file...
用more去看他的內容...
就會出現這樣的結果
0 23 * * * df -k > /tmp/df.txt
也就是用crontab -e 出來的結果...

相對的...FreeBSD的cron job (crontab -e )會存放在/var/cron/tabs下(一樣要用root才能進去這個目錄)..其他都都一樣..


如果我有說錯..請不吝指教..thx

VBird 2002-01-02 12:18 AM

Re: Re: Re: Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 repsol 發表[/i]
[B]
crontab -e 存下來的東西會出現在/var/spool/cron這個目錄下(必須要用root身分,才能進到這個目錄),會以ID的方式存放出現..可以用more去看他的內容...會發現就是crontab -e 編輯出來的東西,,
舉個例子來說..如果是以pczone這個id 執行crontab -e 編輯自己的cron job...
0 23 * * * df -k > /tmp/df.txt
存檔後離開...
/var/spool/cron/下...就會出現一個pczone這樣一個file...
用more去看他的內容...
就會出現這樣的結果
0 23 * * * df -k > /tmp/df.txt
也就是用crontab -e 出來的結果...
相對的...FreeBSD的cron job (crontab -e )會存放在/var/cron/tabs下(一樣要用root才能進去這個目錄)..其他都都一樣..
如果我有說錯..請不吝指教..thx [/B][/QUOTE]
阿!很抱歉,存放目錄搞錯了!真抱歉.... ^_^"

基本上是這樣,當使用 more file 去看 /var/spool/cron 這個目錄下的 file 時,會發現如下的一段文字:

[i]# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.16593 installed on Wed Jan 2 00:15:38 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)[/i]

檔案直接告訴我們不需要修改這個檔案,否則需要 reinstall !因此,盡量以 crontab -e 的方式來修正你所需要的排程。但是 /etc/crontab 這個檔案則是 cron 這支服務一直在讀取的資料,因此,如果你以 root 的身份修改之後,那不用重新啟動cron就可以直接執行了。兩者的差異大概在這裡吧我想。若有錯誤,敬請不吝指正!謝謝!

repsol 2002-01-02 01:09 AM

Re: Re: Re: Re: Re: Re: Re: 重新啟動網路的『script』...
 
[QUOTE][i]最初由 VBird 發表[/i]
[B]
阿!很抱歉,存放目錄搞錯了!真抱歉.... ^_^"

基本上是這樣,當使用 more file 去看 /var/spool/cron 這個目錄下的 file 時,會發現如下的一段文字:

[i]# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.16593 installed on Wed Jan 2 00:15:38 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)[/i]

檔案直接告訴我們不需要修改這個檔案,否則需要 reinstall !因此,盡量以 crontab -e 的方式來修正你所需要的排程。但是 /etc/crontab 這個檔案則是 cron 這支服務一直在讀取的資料,因此,如果你以 root 的身份修改之後,那不用重新啟動cron就可以直接執行了。兩者的差異大概在這裡吧我想。若有錯誤,敬請不吝指正!謝謝! [/B][/QUOTE]



小弟上一篇只有指出crontab -e 的存放位置..忘記說明請各位網友請不要修改此檔
也謝謝VBird兄的指正

說詳細一點
crontab -e 後..會把cron job重新load進memory去執行...所以會有看到這一行

(/tmp/crontab.16593 installed on Wed Jan 2 00:15:38 2002)

就告訴你說...這個cron job最後一次load進memory去執行的時間點

也就是說..如果修改這個/var/spool/cron這個目錄下的file...
他並不會自動將修改過的cron job重新load進memory去執行
可以直接做個測試就知道了...
假設要修改pczone這個id的cron job

1.先修改/var/spool/cron/pczone,存檔後離開

2.再以pczone的這個 id 下一道指令
crontab -l


將會發現並沒有剛剛修改過的東西

所以要修改cron job...請用crontab -e去edit

==============================================================================

至於cron daemon


這個cron daemon會每分鐘去check /etc/crontab這個file
因為cron job的最小單位是1分鐘...
如果有修改過/etc/crontab...並不用重新reload cron的daemoon...
因為他本來就是每分鐘會check /etc/crontab這個file..有要執行的就會執行
cron daemon不會lose掉/etc/crontab有修改的部分

repsol 2002-01-02 01:15 AM

cron這個daemon這個隨著開機就會執行一直服務
用 top或是 ps 就可以看到了


Linux和FreeBSD啟動檔或是設定如下
Linux :

/etc/rc?.d/??cron??
start cron daemon的script


FreeBSD
/etc/defaults/rc.conf


cron_enable="YES" # Run the periodic job daemon.
cron_program="/usr/sbin/cron" # Which cron executable to run (if enabled).
cron_flags="" # Which options to pass to the cron daemon

Man 2002-01-02 04:49 PM

嗯~真是多謝各位前輩的指點指點~
現在對 crontab 的瞭解深了許多呢!:rolleyes:


所有時間均為 +8。現在的時間是 11:48 PM



 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。