私はDebianGNU/Linuxでシェルスクリプトを設定して、ディレクトリとサブディレクトリをリモートNAS Linux overSSHを実行しています。この接続を暗号化する必要があります。
rsync rsh
などを含むいくつかの異なるアプローチを試しましたが、運がありませんでした。 crontab
の設定方法は知っていますが、無人で実行するスクリプトが必要です(つまり、パスワードを要求されません)
誰か助けてもらえますか?
編集:パスワードなしで正常にログインできるようになりました。
ここでの問題は、rsyncを取得して/backups/
内のファイルを[remote system]:/backups/
にコピーすることです。
/backups/
から[remote system]:/backups/
に1つのフォルダのみをコピーします。
編集:ローカルシステムには/ backupsと/ backupが1つあるようです.../backupを使用する必要があるときに、/ backupsを試してみました...
最終コマンド:rsync -avzr -e ssh /backup/ admin@[IP]:/backups/
2.6.x以降のrsyncは、デフォルトで転送にsshを使用します。したがって、リモートNAS rsyncがサポートされている限り、すでに処理されています。
パスワードを使用しない無人転送については、cronを実行しているユーザーのsshキーベースの認証を設定する必要があります。設定方法は次のとおりです--- http://www.cyberciti.biz/tips/ssh-public-key-based-authentication-how-to.html
このフラグをrsyncに渡して、パスワードにファイルを使用することもできます。
--password-file
ファイルを400に簡単にchmodできるので、ユーザー以外の誰もそのファイル(そしてもちろんルート)を読むことができません
Ssh Keyの同期では、これは機能していると言われましたが、それでも手順を投稿すると思いました
nASにSSH接続する
キーを作るには
ssh-keygen -t rsa on local machine
次に、バックアップ元のコンピューターに同期します
cat ~/.ssh/id_rsa.pub | ssh user@hostname ‘cat>>.ssh/authorized_keys’
Ryncバックアップスクリプト-これにより、今日のバックアップフォルダーが作成され、昨日のsycnファイルが今日のファイルになります。これにより、ネットワークの負荷が軽減され、今日のrsyncがバックアップされます。
#!/bin/sh
mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$Host/$username
rsync -avz /storage/backups/`date --date=yesterday +\%Y-\%m-\%d`-`date--date=yesterday +\%A`/$Host/$username/ /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$Host/$username/
rsync -avz -e ssh /home/username/ /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$Host/$username/
バックアップをクリーンアップするスクリプトも必要になります。これにより、1週間のバックアップが保持されます。これは、Netgearの準備が整ったNASで機能することを確認できます。
#!/bin/sh
# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)
# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago
スクリプトを実行可能にするには、これを実行する必要があります
chmod u+x script.sh
cronでは、crontab-eを介して追加する必要があります。
@daily sh backupscript
1 17 * * * sh dailycleanup