Linux下恢複被誤刪除的syslog—/var/log/messages

來源:互聯網
上載者:User


Linux下恢複被誤刪除的syslog—/var/log/messages 軟體開發日常工作中,出於方便定位問題的需要,我們常常會去清空記錄檔。但是,Linux新手容易犯的一個錯誤是把記錄檔給直接刪除,而不是刪除記錄檔的內容。直接刪除記錄檔往往導致新產生的日誌記錄無法被寫入到記錄檔中(因為它已經被刪除了),而僅僅重新建立(touch)同樣名字的檔案是解決不了問題的。下面以Unbutu系統為例,說明如何恢複被誤刪除的syslog:   www.2cto.com  首先,在以root使用者執行如下lsof命令,查詢開啟/var/log/messages檔案的進程的進程ID(PID)。 Shell代碼  root@viscent:/var/log# lsof | grep messages  rsyslogd 544 syslog 7w REG 8,1 214641 134422 /var/log/messages   從上面命令輸出可以看到,這個開啟/var/log/messages檔案的進程的PID是544,檔案/var/log/messages的檔案描述符(FD)號是7。 根據上述的PID和FD,可以在/proc找到對應的檔案: Shell代碼  root@viscent:/var/log#ls -al /proc/544/fd/7  l-wx------ 1 root root 64 2012-07-14 14:48 7 -> /var/log/messages    www.2cto.com  將檔案/proc/544/fd/7拷貝到/var/log/messages Shell代碼  cp /proc/544/fd/7 /var/log/messages   然後重新啟動syslog服務即可恢複被誤刪除的記錄檔,並且新的日誌記錄能夠繼續被寫入記錄檔。 以root使用者運行service命令。其中,service命令的第2個參數可能是syslog、也可能是rsyslog。 具體可以使用通過命令查詢得知。   www.2cto.com  Shell代碼  root@viscent:/proc/544/fd# service --status-all  [ ? ] ...  [ ? ] rc.local  [ ? ] rsyslog  [ ? ] screen-cleanup  [ ? ] ...   Shell代碼  root@viscent:/proc/544/fd# service rsyslog restart  rsyslog start/running, process 2673   BTW,真正用來清空記錄檔的命令應該是:  Shell代碼  cat /dev/null>/var/log/messages 
來源   http://viscent.iteye.com/
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.