2014-05-01 97 views
1

我知道這已被問了很多次,但我可以找到一個合適的答案在我的情況。shell腳本:寫入sdterr&sdtout到文件

我使用rsync確定了一個備份腳本,並希望從所有腳本命令中看到所有輸出和錯誤。我必須在裏寫下命令這個腳本本身,並且不想在我的shell中看到輸出。 我一直在嘗試沒有成功。下面的腳本的一部分。

#!/bin/bash 
..... 
BKLOG=/mnt/backup_error_$now.txt 
# Log everything to log file 
# something like 
exec 2>&1 | tee $BKLOG 
# OR 
exec &> $BKLOG 

我一直在添加腳本beginig各類exec | tee $BKLOG與在命令行中的各部分加&>, 2>&1,但都失敗了。我要麼得到一個空的日誌文件或不完整。我需要在日誌文件上看到rsync已完成的操作,以及在同步前腳本失敗的錯誤。

謝謝你的幫助。我的shell是zsh,因此歡迎任何zsh中的解決方案。

回答

2

要將所有標準輸出/標準錯誤重定向到文件的地方這行腳本的頂部:

BKLOG=/mnt/backup_error_$now.txt 
exec &> "$BKLOG" 
+0

解決方案工作。謝謝。以爲我已經嘗試過了。 – gabx

+0

不客氣,很高興它的工作。 – anubhava