SSH를 통한 원격 호스트의 RSYNC로 인해 LAMP가 중단됨

SSH를 통한 원격 호스트의 RSYNC로 인해 LAMP가 중단됨

rsync 명령을 사용할 때 다음과 같은 세 가지 문제가 발생했습니다.

sudo rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress <user>@<ip.address>:~/public_html/ /var/www/html

1.) 비밀번호 없이 사용할 수 있도록 이 명령을 어떻게 변경합니까? cronjob을 사용하여 내 서버에서 정기적인 업로드/다운로드를 자동화하고 싶습니다. 이제 html 폴더가 파일 시스템 내부에 있으므로 로컬 사용자 비밀번호를 입력해야 합니다. 둘째, 원격 호스트에 SSH 키를 설정하고 원격 호스트 비밀번호를 입력하지 않고도 연결을 설정할 수 있음에도 이 명령을 실행하면 원격 호스트 비밀번호를 다시 입력하라는 메시지가 표시됩니다(저장된 SSH 키가 인식되지 않음).

2.) 위의 rsync 명령을 사용하기 전에 내 LAMP 개발 환경이 제대로 실행되고 있었습니다. 그러나 위 명령을 통해 원격 호스트에서 내 웹사이트를 다운로드한 후 파일 및 디렉터리의 권한이 변경되었습니다. 나는 -a 속성이 원격 호스트의 사용자 이름과 권한을 유지한다고 생각합니다. LAMP 권한을 원래 상태로 복원하려면 어떻게 해야 합니까?

''를 실행했지만 sudo chown -R www-data:www-data /var/www/html이제 WordPress 사이트가 모두 라이브 프로덕션 사이트로 리디렉션됩니다. 예를 들면 다음과 같습니다. https://localhost.sitename.org리디렉션https://sitename.org/wp-signup.php?new=localhost

아니요, /etc/hosts는 편집되지 않았으며 완벽하게 설정되었습니다.

3.) 앞으로 현재의 수렁에 빠지지 않으려면 위의 rsync 명령과 함께 어떤 속성을 사용해야 합니까? SSH RSYNC는 확실히 어떤 FTP보다 빠르고 안전합니다. 내 사용을 개선하는 데 도움이 필요합니다. 감사해요.

답변1

  1. 그것을 크론에 넣어라(매일 3시 12분에 진행)
12 3 * * * root rsync -Havz USEROFTHESOURCEHOST@SOURCEHOST:~/public_html/ /var/www/html/

sudoroot올바른 권한을 제공하기 위해 이미 사용하고 있으므로 필요하지 않습니다 .
SSH 키가 있는지 확인하세요.root (일반 사용자뿐만 아니라)
/또한 후행을 잊지 마세요.

  1. -a모든 파일의 대부분의 속성을 보존합니다. 그러나 동일한 사용자가 다른 시스템에서 다른 UID와 GID를 가질 수 있다는 점을 기억하십시오. "실제" 속성은 UID입니다.(그리고 GID)사용자 이름 대신(또는 그룹 이름)

  2. 위에 입력한 명령은 실제로 실제 생활에서 실행하는 명령이 아닙니다. 대상 호스트 대신 소스 호스트에서 cron을 사용하여 다음과 같이 됩니다.

12 3 * * * root rsync -Havz /home/USEROFTHESOURCEHOST/public_html/ USERATTHEDESTHOST@DESTINATIONHOST:/var/www/html/

USERATTHEDESTHOST( /에 쓸 수 있는 권한이 있는 사용자인지 확인하십시오 var/www/html)

관련 정보