쉘 스크립트에서 SSH 로그인 후 날짜 변경

쉘 스크립트에서 SSH 로그인 후 날짜 변경

컴퓨터에 SSH로 연결한 후 날짜를 변경해야 하는데 변경할 수 없습니다. 이것은 내가 작성한 스크립트입니다.

#!/bin/bash
ENVIRONMENT_LIST=environment_ip_list
USERNAME=root
declare ENVIRONMENT_ARRAY

mdate="$#"

readIp()
{
while read IP
    do
        ENVIRONMENT_ARRAY[$env_count]="$IP"
        let env_count++
    done < $ENVIRONMENT_LIST
}
change_date()
{
    for ((i = 0; i < env_count; i++))
    do
        ssh -t -t -o StrictHostKeyChecking=no $USERNAME@${ENVIRONMENT_ARRAY[i]} "'date -s "$1 $2 $3 $4"'"
    done
}
readIp
change_date

터미널에서 다음과 같은 출력을 얻습니다.

~/Desktop/changedate_script $ ./change.sh 04 SEP 2012 10:36:00
[email protected]'s password: 
bash: date -s  : command not found
Connection to 192.168.12.160 closed.

답변1

SSH 명령에 따옴표가 너무 많습니다.

다음 중 하나를 사용하십시오.

 ssh -t -t -o StrictHostKeyChecking=no $USERNAME@${ENVIRONMENT_ARRAY[i]} "date -s '$1 $2 $3 $4'"

Change_date 함수 호출을 사용하여 tsring을 다음과 같이 변경할 수도 있습니다.

change_date $1 $2 $3 $4

관련 정보