0. 說明
執行bash命令的定時任務時候,希望能把正常的日志輸出到一個文件里面,同時如果執行的過程發生異常則把異常日志輸出到另一個不同的文件中。方便今后異常排查,極大有利於快速定位出錯位置。
需要了解“>”是覆蓋文件原來的內容,“>>”是在文件內容最下方追加。
“1>”或“1>>”是正常標准輸出,“2>”或“2>>”是異常輸出。
1.執行命令
只需要在執行的命令后面加上正常輸出和異常輸出的命令即可,如下所示:
執行bash命令 >> ./正常輸出日志文件路徑 2>> ./異常輸出日志文件路徑
2.舉例
2.1執行命令
比如,沒有“/noPath”這個目錄,如果執行“ls /noPath”目錄,則一定會報錯;但是執行“ls /”是一定成功的。
如:
新建一個腳本文件test.sh,內容為
#!/bin/bash
ls / >> ./1.log 2>> ./2.log #成功,1.log里面會有根目錄的所有文件夾,而2.log沒有內容
ls /noPath >> ./1.log 2>> ./2.log #失敗,1.log沒有這個命令的內容,而2.log會有錯誤輸出
執行腳本“sh test.sh”后,可以在test.sh的同級目錄可以看到新生成了兩個文件1.log和2.log。
2.2查看結果
查看1.log,正常日志都在這里,而且沒有異常日志:
[jay@master shell]$ cat 1.log
bin
boot
dev
etc
home
查看2.log,異常日志都在這里,而且沒有正常日志:
[jay@master shell]$ more 2.log
ls: cannot access /noPath: No such file or directory
從而結論得以驗證。
