我有一个问题的嵌入式计算机,它没有一个单独的实时时钟,因此,因此,当我重新启动它,它失去了当前的日期。这是非常恼人的,因为很多进程都依赖于检查文件时间戳。
我可以通过ssh连接到这台机器,并且每次登录时都可以手动设置日期,但这很繁琐,而且容易忘记并在时间戳上造成破坏。没有日期的机器是ssh服务器,我作为SSH客户端与我的PC连接。
我想知道的是,如何使用SSH客户端(我的笔记本电脑)在登录时自动设置远程服务器(嵌入式机器)上的日期。
我认为我应该通过设置我的客户端的ssh_config来执行一个LocalCommand,但是根据我在这个人中所读到的,它并不像我想要的那样工作。命令将类似于一个在这个问题中描述,但带有日期。
我想的另一种方式是,我连接到远程计算机的用户的.profile将尝试连接回我的笔记本电脑并运行日期来更新它的日期。
我该如何做到这一点?
发布于 2016-05-14 18:43:11
您可以用
ssh root@embedded "date -s '$(date)'"(即在本地运行日期,并在远程系统上给出输出日期为-s )。
当然,您需要另一个ssh命令来打开交互式会话,所以要么使用键和ssh代理,要么使用主连接登录。
通常,我也会建议使用NTP,但是如果机器没有互联网连接,您需要在它可以访问的机器上设置NTP服务器。可能是笔记本电脑。
运行ntpdate/rdate/任何登录脚本的程序也是如此:您需要一台运行某种东西的机器来为嵌入式系统服务。
发布于 2016-05-27 10:00:04
您可以在本地服务器或命令中的任何其他Linux服务器上创建脚本:
ssh root@server "date -s '$(date)'"您可以每小时或每隔几分钟使用cron运行它。然而,这看起来并不是最理想的做法。
您的嵌入式系统是否可以访问internet或网络访问其他Linux服务器?
实现所需的最佳方法是在嵌入式系统中使用NTP客户端。它将从NTP服务器请求日期和时间数据,并根据其设置本地数据。
您可以了解如何安装NTP服务器和客户端这里。
https://unix.stackexchange.com/questions/283142
复制相似问题