web-dev-qa-db-ja.com

rsyncを使用してMacをNASにバックアップするにはどうすればよいですか?

たくさんのディレクトリを自分のNAS(基本的にはFinderにネットワーク共有として表示されます)にバックアップする必要があります。起動可能にしたくありません。いくつかのディレクトリをバックアップする必要があります。 。また、毎晩実行したいのですが、rsyncのドキュメントを調べてみましたが、まだ理解できていません。

Rsyncxも調べましたが、インストールできません。 Time Machineのサポートも気にせず、簡単なバックアップが必要です。

5
swilliams

あなたのNASにはrsyncサービスが設定されていますか?一部はそれをサポートしています(例:ReadyNAS)。そうであれば、次のようなことができます:

#!/bin/sh

DEST=xx.xx.xx.xx::backup/swilliams/
RSYNC_OPTS='-vaC --exclude ".DS_Store"'

/usr/bin/rsync $RSYNC_OPTS --exclude "build/" --exclude "dist/" --exclude "*.pyc" ~/code $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Music $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Pictures $DEST
/usr/bin/rsync $RSYNC_OPTS --exclude "Virtual Machines*" ~/Documents $DEST

DESTをNASのIPアドレスに変更し、それに合わせてパスなどを変更する必要があります。

たとえば、それを~/bin/backup.shとして保存すると(必ずchmod a+x ~/bin/backup.shを実行してください)、cronを使用してほぼ実行できます。 crontab -eを実行し、次の行を追加します。

0 0 * * *      $HOME/bin/backup.sh > $HOME/logs/backup.log 2>&1

0 0 * * *は、毎月深夜に実行します。最初の列は分なので、午前3時は0 3 * * *です。これによりログが~/logsに書き込まれるため、ディレクトリが存在することを確認するか、それらはどこか別の場所にあります)

NASがrsyncをサービスとしてサポートしていない場合、私はthink開始を次のように変更すると機能するはずです。

#!/bin/sh

mount_smbfs //user:[email protected]/backup /Volumes/backup
DEST=/Volumes/backup

そして最後に:

umount /Volumes/backup

(共有が開いている場合は、ユーザーとパスワードを省略できます)

タイムスタンプ付きのバックアップが必要な場合は、dateコマンドを試すことができます。例えば.

DATE=`date +%Y%m%d`

次に、スクリプトで$ DATEにアクセスします。

ここで不明な点がある場合は、質問してください。

4
John Fouhy

バックアップにrsyncを使用する場合、確認する必要のある最も重要なオプションは--backup--backup-dirです。これらを使用しない場合、バックアップではなくコピーを実行します。バックアップと同様に、単に上書きするのではなく、変更を追跡する必要があります。私が使用しているのはこれです:

#!/bin/sh

RSYNCOPTS="-e ssh --delete --one-file-system --relative --archive -P --verbose --compress --recursive"
BACKUPDIR="/backup/"
BACKUPINCR="${BACKUPDIR}/incr/$(date -I)"
BACKUPROOT="${BACKUPDIR}/root/"
EXCLUDES="--exclude-from /home/juser/.backup-excludes"

# Make sure we use a new incr backup directory on each run
NUM=0
while [ -e "${BACKUPINCR}-${NUM}" ]; do
  NUM=$(($NUM  + 1))
done
BACKUPINCR="${BACKUPINCR}-${NUM}"

for i in /home/ /etc/; do
  rsync $RSYNCOPTS $EXCLUDES--backup --backup-dir="$BACKUPINCR" "$i" "$BACKUPROOT"
done

これにより、/backup/root/にコピーが作成され、/backup/incr/$DATE-$NUMに変更または削除されたすべてのファイルのバックアップが作成されます。

このスクリプトは--one-file-systemを使用するため、ファイルシステムの境界を越えず、--relativeを使用して絶対パス名を保持します。

追加の衒学的なものが必要な場合は、--checksumを追加できます。これにより、スキップにタイムスタンプを使用する代わりに、すべてのファイルがチェックサムされます。利点は、バックアップにビットフリップがない可能性が高くなることですが、バックアップはしばらくの間実行されます。

別の一般的なアドバイスとして、新しいオプションを試してみるときは、特に--dry-runや友人に関しては、ワイプしないので、彼らが何をするのかわからない場合は常に--deleteを使用してください。誤って既存のバックアップを削除します。

2
Grumbel

http://www.luxgruppe.de/tech/?p=1 での私の説明と、rsyncを使用して音楽とiTunesプレイリストをSynologyと同期するための後続の記事を確認してください。 iTunesプレイリストの同期: http://www.luxgruppe.de/tech/?p=2

楽しんで!

0
Michael

rsync -av path_to_files path_to_place_on_NAS

cron、crontab -eを介して実行します。ただし、そのためにはviを知っている必要があり、crontab構文を調べます。

ファイルがあなたによって所有されている場合、それは機能します。私が理解しているように、Eオプション(-avE)でリソースフォークを取得することをお勧めします。これは、私が理解しているように、OS Xでは実際には使用されませんが、クラシックなものだけが機能しなくなります)。

ここにいくつかのリンクがあります、あなたはsshのものをいじる必要はありません。

シンプル: http://www.Egg-tech.com/mac_backup/

複雑:www.bombich.com/mactips/rsync.html

0
Ronald Pottol