① 【linux學習】nohup和&的用法試驗結果
眾所周知,nohup命令在關閉終端後仍能持續運行Linux腳本,而&符號則表示在後台運行腳本。
具體表現為何?實際應用中,常使用`nohup ./xxx.sh 2>&1 &`命令在後台持久運行xxx.sh腳本。但nohup與&各自獨立使用時有何不同?本文將通過試驗給出答案。
試驗一:不使用nohup和&,直接運行腳本。
結果:運行腳本時,無法在當前終端執行其他命令,需新開終端查看進程。
試驗二:僅使用nohup。
結果:腳本在前台運行,不方便執行其他命令,但輸出被重定向到nohup.out文件,關閉終端後進程仍在運行。
試驗三:僅使用&。
結果:腳本後台運行,當前終端可用作他用,但輸出直接顯示,可能影響後續命令執行。使用fg命令可將腳本拉回前台,Ctrl+C可停止。
試驗四:結合nohup與&。
結果:將腳本運行效果優化,可繼續當前終端操作,同時查看nohup.out文件內容,避免輸出干擾。
總結:了解nohup和&的用法,有助於更靈活地管理後台腳本運行。若需將輸出內容保存至自定義文件,只需調整命令即可。
② Linux 把shell腳本執行的結果寫到文件中
在Linux中,把shell腳本執行的結果寫到文件中的方法主要有兩種:
方法一:使用重定向
方法二:在腳本內部處理輸出
總結: 推薦使用方法一,因為它更加靈活且易於管理。特別是在處理復雜腳本或需要同時捕獲標准輸出和標准錯誤時,這種方法更加有效。 方法二雖然也可以在腳本內部處理輸出,但通常用於簡單的場景或特定的需求。
③ linux shell腳本每分鍾執行計劃任務,並把結果發送到mail,怎麼不重復發送
如果是這樣的話 建議你腳本設置一個閥值 用if判斷實現 在統計fail的類型的錯誤的時候 通過uniq和sort之類的排序去重語法 將重復次數和數值計算出來寫入郵箱的臨時文檔里 另外最好不要一分鍾一次 感覺意義不大 如果非要一分鍾一次的話 建議腳本改進 通過當前的date時間做減法 算時間和日誌里的進行比對 然後找出近一分鍾的時間內的fail的IP 寫入tmp文件中 那樣你可以用 >這樣的輸出重定向 以免每次看到都有很多重復信息。 具體的腳本寫法我就不羅列了 自己解決問題才是成長的過程。