重新啟動網路的『script』... 各位好~ 我是用 Redhat Linux 7.0 的... 想寫一個每兩小時重新啟動網路的『script』,應該如何呢? ------------------------------------------------------ ifdown eth0 ifdown eth1 ifup eth0 ifup eth1 "這裡應該用什麼 command 令它每兩小時重新執行呢?" ------------------------------------------------------ 希望各位能指點指點!謝謝...:D |
man crontab |
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 重新啟動或重開機後應該就可以了 有點好奇 , 為何兩小時要把網路卡重新啟動一次呢 ? |
還要加上執行的權限 chmod a+x net.sh :D :D |
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 |
不太明白『crontab -e』和手動修改『/etc/crontab』的分別... 前者是系統自己的 後者是每個使用者的 |
[QUOTE][i]最初由 lionel_lo 發表[/i] [B]不太明白『crontab -e』和手動修改『/etc/crontab』的分別... 前者是系統自己的 後者是每個使用者的 [/B][/QUOTE] 嗯~多謝你的指點... 但我依稀記得好像『crontab -e』是給使用者自訂的... 而『/etc/crontab』是設定給整個系統的... 究竟...應該是怎樣呢? 而且當我以 root 的身份執行『crontab -e』、在上面加上設定又和我直接修改 『/etc/crontab』有什麼分別呢? 希望各位能指點指點!謝謝... |
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分隔開來... |
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: |
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則系統會在載入新值... |
Re: Re: Re: Re: 重新啟動網路的『script』... 這個問題之前也曾遇過..找了一些資料.. 可以讓ADSL不斷線的script..大家可以 參考看看.. [URL=http://www.adj.idv.tw/phpBB2/viewforum.php?f=7]ADSL不斷線script[/URL] |
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] |
喔!忘了提到了!如果你是使用動態 IP 架站的話,那麼登錄到動態 DNS 主機的 scripts 絕對是必須的,果真如此的話,建議到底下的網頁上看看: [url=http://aerosol.ev.ncku.edu.tw/~vbird/linux/linux_23dynamicDNS.html]動態 DNS 偵測技巧[/url] |
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 |
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就可以直接執行了。兩者的差異大概在這裡吧我想。若有錯誤,敬請不吝指正!謝謝! |
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有修改的部分 |
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 |
嗯~真是多謝各位前輩的指點指點~ 現在對 crontab 的瞭解深了許多呢!:rolleyes: |
所有時間均為 +8。現在的時間是 11:48 PM。 |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。