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