rsyncでファイルをバックアップするbashスクリプトを作成しています。
バックアップはすべて単一のディレクトリから取得されます。新しいファイルまたは変更されたファイルのみをバックアップしたい。
現在、私はrsyncにディレクトリをバックアップし、最後のバックアップと比較してファイルをチェックするように指示しています。
私がこれをしている方法は
THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current
私はこれに対して正しい構文を持っていると確信しています。各バックアップは「現在の」フォルダと照合し、必要な場合にのみアップロードします。次に、現在のフォルダを削除し、実行した最新のバックアップへのシンボリックリンクを再作成します。
スクリプトを実行するとエラーが発生します。
rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"
=> /Backup/Current/dgs1200series_manual_310.pdfが失敗しました:操作はサポートされていません(45)
ホストOSは、ハードリンクをサポートするHFSファイルシステムを実行しています。他の何かがこれをサポートしていないのか、またはコードに問題があるのかを把握しようとしています。
助けてくれてありがとう
編集:
ローカルマシンでハードリンクを作成できます。リモートサーバーにハードリンクを作成することもできます(ローカルにログインしている場合)。afpを介してマウントした場合、リモートサーバーにハードリンクを作成できません。サーバー上に両方のファイルが存在する場合でも。
これはafpの制限だと思います。