Bash,远程服务器上的命令 returns 失败时为真
Bash, command on remote server returns true in case of failed
在远程服务器上执行的命令returns即使失败也是如此。这是代码。
command="
sudo su - postgres -c 'pg_dump -Fc ${var[1]}'
"
if
ssh -n -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$username"@"${var[0]}" "$command" > "$folder_export"/"${var[0]}"/"$date"-"$time"-"${var[0]}"-"${var[1]}".dump
export_end=$date-$time
then
export=true
else
export=false
fi
我试图停止远程服务器上的 postgres。
输出显示了这个。
pg_dump: [archiver (db)] connection to database "coopweb" failed: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
但如果条件 returns 为真。我不知道为什么。
ssh 命令中的某些选项可能是错误的吗?或者问题出在哪里?
谢谢。
在您的语句中,if 表达式中评估的 return 代码是分配给变量 export_end 的 return 代码。
一种解决方案是将此作业移至 if/else 分支:
...
if ssh -n -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$username"@"${var[0]}" "$command" > "$folder_export"/"${var[0]}"/"$date"-"$time"-"${var[0]}"-"${var[1]}".dump
then
export_end=$date-$time
export=true
else
export_end=$date-$time
export=false
fi
在远程服务器上执行的命令returns即使失败也是如此。这是代码。
command="
sudo su - postgres -c 'pg_dump -Fc ${var[1]}'
"
if
ssh -n -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$username"@"${var[0]}" "$command" > "$folder_export"/"${var[0]}"/"$date"-"$time"-"${var[0]}"-"${var[1]}".dump
export_end=$date-$time
then
export=true
else
export=false
fi
我试图停止远程服务器上的 postgres。 输出显示了这个。
pg_dump: [archiver (db)] connection to database "coopweb" failed: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
但如果条件 returns 为真。我不知道为什么。 ssh 命令中的某些选项可能是错误的吗?或者问题出在哪里?
谢谢。
在您的语句中,if 表达式中评估的 return 代码是分配给变量 export_end 的 return 代码。 一种解决方案是将此作业移至 if/else 分支:
...
if ssh -n -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$username"@"${var[0]}" "$command" > "$folder_export"/"${var[0]}"/"$date"-"$time"-"${var[0]}"-"${var[1]}".dump
then
export_end=$date-$time
export=true
else
export_end=$date-$time
export=false
fi