[英]Bash script error server issue
我有以下bash脚本
#!/bin/bash
servers="server1.... server2...."
seconds="3" # value for servers to differ (in seconds)
now=$(date +%s)
for server in $servers
do
ssh -l root ${server} "( date +%s )" > /tmp/.tmpdate
echo "-" $(date +%s) >> /tmp/.tmpdate
difference=$(awk -F '-' '{if ($1-$2 < 0) { print $2-$1 } else { print $1-$2} }' /tmp/.tmpdate)
if [[ $difference -le $seconds ]] ; then
echo $server - IN SYNC
else
echo $server - NOT IN SYNC
fi
done
我收到difference=$(awk -F '-' '{if ($1-$2 < 0) { print $2-$1 } else { print $1-$2} }' /tmp/.tmpdate)
的语法错误difference=$(awk -F '-' '{if ($1-$2 < 0) { print $2-$1 } else { print $1-$2} }' /tmp/.tmpdate)
导致脚本其余部分不正确的行。 有任何想法吗?
我们可以简化一些:
#!/bin/bash
servers="server1.... server2...."
seconds="3" # value for servers to differ (in seconds)
for server in $servers
do
remote=$(ssh -l root ${server} date +%s )
now=$(date +%s)
if [ "$remote" -gt "$now" ]
then
diff=$(expr $remote - $now)
else
diff=$(expr $now - $remote)
fi
echo $diff
if [[ $diff -gt $seconds ]] ; then
echo $server - NOT IN SYNC
else
echo $server - IN SYNC
fi
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.