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 (- < 0) { print - } else { print -} }' /tmp/.tmpdate)
    if [[ $difference -le $seconds ]] ; then
        echo $server - IN SYNC
    else
        echo $server - NOT IN SYNC 
    fi
done

我收到 difference=$(awk -F '-' '{if (- < 0) { print - } else { print -} }' /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