고쳐 쓰다

고쳐 쓰다

임베디드 포키 리눅스는 ntpdate사용할 수 없습니다.

다음 명령 중 어느 것도 적절한 것이 없는 것 같습니다.

# date -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)" 
date: invalid date '08 Mar 2021 13:22:34 GMT'
# date -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-6)"
date: invalid date '08 Mar 2021 13:22:34'
#date +"%d %b %Y %H:%M:%S" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-6)"
date: invalid date '08 Mar 2021 13:22:34'

고쳐 쓰다

BusyBox 날짜는 다음 날짜 형식만 허용합니다.

@seconds_since_1970
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]

-D사용 중인 BusyBox 버전에서 해당 옵션을 사용할 수 있는 경우 제안된 대로 이 명령을 사용할 수 있습니다.강철 드라이버:

busybox date -d '08 Mar 2021 13:22:34' -D '%d %b %Y %H:%M:%S'

답변1

busybox date마지막으로 Google의 시간 문자열을 구문 분석하여 친숙한 형식( ) 으로 변환했습니다 YYYY-mm-dd HH:MM:SS. 누군가가 미래에 이것이 유용하다고 생각하기를 바랍니다.

#!/bin/sh

monthnumber() {
    month=$1
    months="JanFebMarAprMayJunJulAugSepOctNovDec"
    tmp=${months%%$month*}
    month=${#tmp}
    monthnumber=$((month/3+1))
    printf "%02d\n" $monthnumber
}

G_DATE="$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-6)"
G_SPLIT=($(echo $G_DATE | tr " "))

BB_DATE="${G_SPLIT[2]}-$(monthnumber ${G_SPLIT[1]})-${G_SPLIT[0]} ${G_SPLIT[3]}"

date -s "$BB_DATE"

monthnumber()에서 가져온 함수https://stackoverflow.com/a/41385862/9815377

답변2

아마도 busybox를 업데이트할 수 있을 것입니다. V1.30을 얻었고 명령이 작동합니다

관련 정보