2013-11-02 4 views
0

이것은 간단한 문제인 것처럼 보입니다.하지만이를 이해할 수는 없습니다. 서버에서 몇 개의 작은 스크립트를 실행하려고하는데 문제가 있습니다. .sh 파일과 같은 위치에있는 서버 목록이있는 allhosts 파일이 있습니다.모든 서버에서 mkdir, chmod 및 scp 자동화하기

스크립트는 777 권한을 위의 스크립트에서

#!bin/bash 
for q in `cat allhosts` 
do 
ssh $q "mkdir -p /opt/acd/hgf/tom/hanks/" 
chmod -R 777 $q "/opt/acd/hgf/tom/hanks/" >/dev/null 2>&1 
done 

, 그것은 단지 디렉토리 경로를 생성하고 해당 경로에 대한 권한을 변경하지 않는 모든 20 개 서버에서 디렉토리 구조를 만들 수 있습니다. 나는 별도의 스크립트에서 그 chmod 명령을 실행했지만, 아무 소용이 ...

스크립트는 새 서버에서 만든 행크스 폴더로 행크스의 내용을 scp를하지 수 있습니다.

#!bin/bash 
for q in `cat allhosts` 
do 
scp /opt/acd/hgf/tom/hanks/* $q:/opt/acd/hgf/tom/hanks/ >/dev/null 2>&1 
done 

이 스크립트에서도 실행했을 때 서버에 아무 것도 복사하지 않습니다.

이 문제는 매우 드뭅니다.하지만 제가 잘못되어 가고 있는지 확인해주십시오. 사전에 감사합니다 ..

+0

로컬 시스템에서 chmod를 실행 중입니다. chmod는 원격 기계에 로그인하여 물건을 만드는 방법을 모른다. – nos

답변

0

는 로컬 컴퓨터에 chmod를 실행하기 때문에 첫 번째 스크립트가 실패합니다. 당신은 ssh를 통해 원격 컴퓨터에서 실행해야합니다 - 다음과 같이 다른 ssh 호출과이 결합 수 :

ssh $q "mkdir -p /opt/acd/hgf/tom/hanks/ ; chmod -R 777 /opt/acd/hgf/tom/hanks/" 

내가 첫 번째 스크립트 권한을 설정하지 않기 때문에 두 번째 스크립트가 실패 추측에는 요; 괜찮아 보이는 군.

+0

팁을 주셔서 고마워요. 그렇습니다. 첫 번째 스크립트는 잘 돌아갔습니다.하지만 두 번째 스크립트를 사용하는 동안 아무것도 복사되지 않고 있습니다. 뭔가 빠졌습니까? – KRN

+0

'scp/opt/acd/hgf/tom/hanks/* $ {q} :/opt/acd/hgf/tom/hanks /'를 시도하십시오. (출력을'/ dev/null'으로 리디렉션하는 이유는 무엇입니까? 최소한 로그 파일로 리다이렉트했다면 에러 메시지를 볼 수있을 것입니다. 이것은 무슨 일이 일어나고 있는지, 그리고 어떻게 수정 하는지를 알려줍니다 .) – pobrelkey