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
- 그것을 크론에 넣어라(매일 3시 12분에 진행)
12 3 * * * root rsync -Havz USEROFTHESOURCEHOST@SOURCEHOST:~/public_html/ /var/www/html/
sudo
root
올바른 권한을 제공하기 위해 이미 사용하고 있으므로 필요하지 않습니다 .
SSH 키가 있는지 확인하세요.root
(일반 사용자뿐만 아니라)/
또한 후행을 잊지 마세요.
-a
모든 파일의 대부분의 속성을 보존합니다. 그러나 동일한 사용자가 다른 시스템에서 다른 UID와 GID를 가질 수 있다는 점을 기억하십시오. "실제" 속성은 UID입니다.(그리고 GID)사용자 이름 대신(또는 그룹 이름)위에 입력한 명령은 실제로 실제 생활에서 실행하는 명령이 아닙니다. 대상 호스트 대신 소스 호스트에서 cron을 사용하여 다음과 같이 됩니다.
12 3 * * * root rsync -Havz /home/USEROFTHESOURCEHOST/public_html/ USERATTHEDESTHOST@DESTINATIONHOST:/var/www/html/
USERATTHEDESTHOST
( /에 쓸 수 있는 권한이 있는 사용자인지 확인하십시오 var/www/html
)