내장된 컴퓨터에 문제가 있습니다. 별도의 실시간 시계가 없어서 다시 시작할 때마다 현재 날짜를 추적하지 못합니다. 많은 프로세스가 파일 타임스탬프 확인에 의존하기 때문에 이는 매우 성가신 일입니다.
이 시스템에 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 서버 및 클라이언트 설치 방법을 읽을 수 있습니다.여기.