【问题标题】:ssh - remotely passing and setting a variablessh - 远程传递和设置变量
【发布时间】:2012-02-06 09:39:48
【问题描述】:
ssh xxx@remote_system " echo $dateVar; date=$dateVar"

我正在尝试从 shell 脚本中将 dateVar 传递给远程系统,我相信这可以正常工作,然后尝试将远程服务器上的日期设置为 dateVar 变量的日期,但没有成功.有人可以帮忙吗?

问候!

【问题讨论】:

  • 我看到您正在设置一个名为 date 的变量。您预计这会产生什么影响?
  • “回声”是否打印正确的值?而且你知道你需要在没有=的情况下调用date命令,否则你只是创建了一个名为date的新变量而不使用它?
  • 您可以使用类似 date -s "20012.01.07-22:46+0000" 的方式设置日期,您的方法只是定义了一个新变量。
  • 我正在尝试将远程系统上的日期设置为我正在 ssh 的本地系统的日期。我对此真的很陌生,因此非常感谢您的帮助。谢谢!!!保存本地系统日期的 $dateVar 正确显示。

标签: linux bash shell scripting ssh


【解决方案1】:

date man page,要使用date 命令设置日期,您应该使用date --set=$dateVar。因此,要在远程系统上更改日期,执行以下操作就足够了:

  • ssh xxx@remote_system "sudo date --set=$dateVar"

【讨论】:

  • 谢谢。这应该可以工作,如下所述,我需要使用 sudoers 文件。
  • 以下命令有效:ssh xxsi675 sudo date --set="'$dateVar'"
  • @user1139654:如果该命令对您有用,您可以通过单击它旁边的绿色勾号将其设置为正确答案吗?另外,不要忘记对@DarkDust 的回答投票赞成他使用sudo 的建议。
【解决方案2】:

假设日期格式正确,您需要删除=,因为它创建/设置了一个名为date变量,而不是调用命令date

ssh xxx@remote_system "date $dateVar"

您的用户xxx 可能没有必要的权限,因此您可以设置sudo(谷歌搜索类似sudo/etc/sudoers)这样您就可以:

ssh xxx@remote_system "sudo date $dateVar"

【讨论】:

  • 谢谢!我会试一试的。
  • 以下命令有效:ssh xxsi675 sudo date --set="'$dateVar'"
猜你喜欢
  • 2011-03-19
  • 2011-10-08
  • 1970-01-01
  • 2012-07-18
  • 2015-05-13
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
相关资源
最近更新 更多