SSHクライアントから日付を取得する

SSHクライアントから日付を取得する

内蔵コンピュータに問題があります。別のリアルタイムクロックがないため、再起動するたびに現在の日付を追跡できません。多くのプロセスがファイルタイムスタンプの検証に依存しているため、これは非常に面倒です。

このシステムにSSHでアクセスしてログインするたびに手動で日付を設定できますが、これは退屈で忘れやすく、タイムスタンプによって混乱を招く可能性があります。日付が表示されないシステムは、SSHクライアントとして自分のPCに接続するSSHサーバーです。

私が知りたいのは、ログイン時にリモートサーバー(内蔵コンピュータ)とSSHクライアント(マイノートブック)で日付を自動的に設定する方法です。

LocalCommandを実行するようにクライアントのssh_configを設定してこれを行う必要があると思いますが、ドキュメントで読んだ内容によれば、望みどおりに機能しません。コマンドは次のとおりです。この質問で説明されているでもデートがあります。

私が考えるもう一つの方法は、リモートコンピュータに接続しているユーザーの.profileが私のラップトップに再接続しようとし、日付を実行して日付を更新することです。

この目標をどのように達成する必要がありますか?

答え1

日付を設定できます。

ssh root@embedded "date -s '$(date)'"

(つまり、ローカルでdateを実行し、リモートシステムのdate -sに出力を提供します。)

もちろん、対話型セッションを開くには別のsshコマンドが必要なので、キーとssh-agentまたはデフォルトの接続を使用してログインできます。

通常はNTPを使用することをお勧めしますが、コンピュータがインターネットに接続されていない場合は、アクセス可能な一部のコンピュータにNTPサーバーを設定する必要があります。おそらくラップトップでしょう。

ログインスクリプトでntpdate / rdate / whateverを実行している場合も同様です。組み込みシステムにタイムサービスを提供するには、何かを実行するシステムが必要です。

答え2

次のコマンドを使用して、ローカルサーバーまたは他のLinuxサーバーにスクリプトを生成できます。

ssh root@server "date -s '$(date)'"

必要に応じて、毎時間または数分ごとにcronを使用して実行できます。しかし、これが最善のアプローチではないようです。

あなたの組み込みシステムにはインターネットアクセスがありますか、他のLinuxサーバーへのネットワークアクセスはありますか?

必要なものを達成する最善の方法は、組み込みシステムでNTPクライアントを使用することです。 NTPサーバーから日付と時刻のデータを要求し、それに基づいてローカルの日付と時刻のデータを設定します。

NTPサーバーとクライアントのインストール方法を読むことができます。ここ

関連情報