1
我有幾臺奇怪的服務器,所以爲了找到問題,我寫了一些應該運行一些基本測試並將它們輸出到日誌文件的bash腳本。如何將時間命令的輸出重定向到日誌文件?
腳本看起來像這樣:
#!/bin/bash
PENDERLIST="/root/pender.list"
PING="/bin/ping"
ETHTOOL="/sbin/ethtool"
FILE="/root/14mfile"
function writelog
{
echo "$(/bin/date +%F) $(/bin/date +%R): $*"
}
for SRV in $(cat $PENDERLIST); do
writelog "################### Begin $SRV ########################"
echo "### PING ###"
$PING $SRV -c 2
ssh [email protected]$SRV "yum install lshw -y"
echo "### Uname -a ###"
ssh [email protected]$SRV "uname -a"
echo "### Release ###"
ssh [email protected]$SRV "/bin/cat /etc/*release*"
LSHW=$(ssh [email protected]$SRV "lshw -C network |grep eth | awk 'NR==1' ")
NIC=$(echo $LSHW | awk -F: '{print $2}')
echo "### IFCONFIG ###"
ssh [email protected]$SRV "ifconfig"
echo "### ETHTOOL ###"
ssh [email protected]$SRV "ethtool $NIC"
echo "### FILE TRANSFER ###"
time scp $FILE [email protected]$SRV
writelog "############## End of report for $SRV #################"
done
我運行它像這樣:
./check_server.sh > log.txt
所有輸出從時間命令有寫入日誌成功分開。 我試着改變命令:
(time scp $FILE [email protected]$SRV) 2> log.txt
{ time ls; } 2> out.txt
但兩者打印的time
輸出到屏幕上,而不是在log.txt文件。 如何將時間輸出重定向到日誌?
編輯#1:
在檢查日誌,在所在行的時候輸出應該是,我看到:
### FILE TRANSFER ###
2014-11-23 02:31: ############## End of report for pender4.company.com #################
2014-11-23 02:31: ################### Begin pender5.company.com ########################
2用於重定向標準錯誤。嘗試附加到日誌文件(時間SCP $文件根@ $ SRV)>> log.txt – SMA 2014-11-23 10:27:31
對不起,沒有提及它,嘗試過,但無濟於事。 – 2014-11-23 10:28:20
你檢查了你的log.txt嗎?無論你迴應或寫入標準輸出,你正在重新檢查log.txt? – SMA 2014-11-23 10:30:51