linux - Bash脚本错误服务器问题

标签 linux bash syntax scripting

我有以下 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) 的语法错误导致脚本其余部分不准确的行。有什么想法吗?

最佳答案

我们可以简化一些:

#!/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

关于linux - Bash脚本错误服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487292/

相关文章:

syntax - 最短 REPEAT 语句 Modula-2

linux - 读取命令选项在旧操作系统 Linux 上不可用。还有什么其他命令允许默认值

linux - 如何压缩包含超过 12GB 数据的文件夹

bash - Bash 条件语句中圆括号和方括号的区别

bash - 在脚本之间发送信号(bash)

bash - 如何获取管道命令的pid?

python - 导入错误 : No Module Named <parent dir>

linux - 使用 net.tcp 绑定(bind)时 MONO 返回连接被拒绝

linux - 在 Bash Cloud Shell 中映射 Azure 文件共享

C 编程?使用指针