Shell-Script
需要密碼時在 cronjob 中使用 rsync
基本上我有一個 bash 腳本,它從我的伺服器獲取數據以執行備份。
現在我必須手動啟動該腳本,輸入密碼,然後等待它完成。
我想設置一個處理備份的 cronjob。
但我真的不知道如何處理 cronjob 中的密碼。
我也不能為此使用密鑰,因為我的提供者沒有提供配置它們所需的機制。
我對我的主文件夾具有 SSH 訪問權限,但在我的主文件夾中,除了目錄之外,我沒有寫訪問權限
http(s)docs
。所以我無法創建必要的~/.ssh/
目錄及其內容以通過密鑰登錄。
這是我用來備份到另一台機器的命令:
rsync -av -e "ssh -i /root/ssh-rsync-valhalla-key" \ --exclude lost+found \ --delete-before \ /mnt/backup/ \ user@192.168.1.99:/cygdrive/r/\!Backups/Niflheim &
因此,您可以使用 將
-i
密鑰文件傳遞給 ssh。當然,在您的範例中,這意味著如果有人知道文件名,則密鑰文件本身將可以通過 HTTP 共享。
你能啟動一個守護程序並保持它執行嗎?如果是這樣,您可以
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