SSH를 통해 배치 모드에서 명령을 실행하는 방법은 무엇입니까?

SSH를 통해 배치 모드에서 명령을 실행하는 방법은 무엇입니까?

SSH를 통해 배치 모드에서 명령을 실행하는 방법은 무엇입니까? 즉, ssh이 명령의 의미는 무엇입니까 sftp -b <filename> <hostname>?

set 으로 전달하려는 명령 세트가 있습니다 ssh. 마지막으로 sftp명령을 파일에 저장 filename하고 호스트에 연결한 후 이전에 언급한 명령을 사용하여 명령을 실행합니다.

이대로 끝나는 게 가능할까요 ssh?

답변1

내가 틀렸다면 정정하십시오. 그러나 스크립트가 로컬인 원격 서버에서 일반 쉘 명령을 실행하려는 것 같습니다.

#!/bin/sh
trap "rm -f /tmp/sendonssh.$$.*" 0 1 2 3 15
# commands to run on the remote server
cat <<'EOF' >> /tmp/sendonssh.$$.sh
mkdir -p /tmp/foobar.$$
mv $HOME/xyzzy /tmp/foobar.$$
chmod 640 $HOME/xyzzy
EOF
# call for each argument
for userhost in "$@"; do
    errorout=`ssh -aTxo BatchMode=yes $userhost /bin/sh -s < /tmp/sendonssh.$$.sh 2>&1`
    rc=$?
    if [ $rc -ne 0 ]; then
        echo "Error: $userhost: $errorout"
        exit $rc
    fi
done

저는 쉘 대신 Python을 사용하고 있습니다. 테스트 환경에서는 "원격 실행" 애플리케이션을 사용하여 이 작업을 수행했습니다 ssh $userhost python < $pythonscriptfilename.

답변2

SSH는 다음과 같습니다 sftp -b <filename> <hostname>.

ssh -o BatchMode=yes <hostname> sh -s < "<filename>"

답변3

어떻게 간단하게 유지하고 다른 컴퓨터에서 "배치" 파일을 실행할 수 있습니까?

  1. scp 배치 파일 user@pc
  2. SSH user@pc 배치 파일
  3. ssh user@pc rm 배치 파일

배치 파일은 일반 쉘 스크립트이므로 구문이 잘 알려져 있습니다.

답변4

아마도

ssh user@host sh -c "$(<filename)"

관련 정보