繁体   English   中英

Bash脚本错误服务器问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM