在bash脚本

时间:2016-09-24 07:11:54

标签: linux bash unix ssh

我在服务器上使用ntpd同步时遇到了一些问题。除非我们解决了这个问题,否则我已编写脚本来手动为那些不同步的人设置服务器上的日期。

为此,我选择了一台参考机器,我正在抓住该机器的当前日期,并尝试在所有其他机器上设置它。

我在脚本中使用以下命令

ssh -i /mnt/keys/g.pem -o StrictHostKeyChecking=no root@$IP 'date --set="$ref_date"'

但是当命令运行时,它设置错误的日期。

e.g ref_date=Sat Sep 24 06:52:17 UTC 2016

当我回显上面的命令时,它显示以下行

ssh -i /mnt/keys/g.pem -o StrictHostKeyChecking=no root@xx.xx.xx.xx 'date --set="Sat Sep 24 06:52:17 UTC 2016"'

但是当同一命令实际运行时,它会提供以下输出

ssh -i /mnt/keys/g.pem -o StrictHostKeyChecking=no root@xx.xx.xx.xx 'date --set="Sat Sep 24 06:52:17 UTC 2016"'

Sat Sep 24 00:00:00 UTC 2016

注意:我已在上面的输出中用xx.xx.xx.xx替换$ IP。

请为此提供解决方案。

1 个答案:

答案 0 :(得分:2)

ssh -i /mnt/keys/g.pem -o StrictHostKeyChecking=no root@$IP "date --set=\"$ref_date\""

请参阅:Difference between single and double quotes in Bash

相关问题