비밀번호가 필요할 때 cronjob에서 rsync 사용

비밀번호가 필요할 때 cronjob에서 rsync 사용

기본적으로 백업을 수행하기 위해 서버에서 데이터를 가져오는 bash 스크립트가 있습니다.

이제 수동으로 스크립트를 시작하고 비밀번호를 입력한 후 완료될 때까지 기다려야 합니다.

백업을 처리하기 위해 cronjob을 설정하고 싶습니다.

하지만 cronjob에서 비밀번호를 처리하는 방법을 잘 모르겠습니다.

또한 공급자가 키를 구성하는 데 필요한 메커니즘을 제공하지 않기 때문에 키를 사용할 수 없습니다.

SSH를 통해 홈 폴더에 액세스할 수 있지만 홈 폴더 내에서는 디렉터리를 제외하고는 쓰기 액세스 권한이 없습니다 http(s)docs. 따라서 ~/.ssh/키를 통해 로그인하는 데 필요한 디렉토리와 해당 내용을 생성할 수 없습니다 .

답변1

이것은 다른 머신에 백업하는 데 사용하는 명령입니다.

rsync -av -e "ssh -i /root/ssh-rsync-valhalla-key" \
  --exclude lost+found \
  --delete-before \
  /mnt/backup/ \
  [email protected]:/cygdrive/r/\!Backups/Niflheim &

-i따라서 .dll을 사용하여 키 파일을 ssh에 전달할 수 있습니다 . 물론 귀하의 예에서는 누군가가 파일 이름을 알아내면 HTTP를 통해 키 파일 자체를 공유할 수 있음을 의미합니다.

답변2

데몬을 시작하고 계속 실행할 수 있었습니까? rsync그렇다면 데몬 모드에서 실행할 수 있습니다.

그런 다음 클라이언트에서 rsync://URL을 사용하여 연결합니다. 인증을 위해 IP로만 제한할 수 있지만 SSH 키에 해당하는 키는 없다고 생각합니다.

다음 내용을 포함하여 어디에나 있을 수 있는 rsyncd.conf가 필요합니다.

[backup]
    path = /path/you/want/to/sync
    read only = true
    hosts allow = 1.2.3.4

그런 다음 데몬 프로세스를 시작하십시오.

rsync --daemon --config=rsyncd.conf

그런 다음 다음에서 동기화를 시도할 수 있습니다.

rsync -av rsync://server.ip/backup /local/backup/dir

관련 정보