rsyncのbashスクリプトとハードリンクファイル
質問
私はrsyncを使用してバックアップに私のファイルをbashスクリプトを作成しています。
バックアップは、すべて単一のディレクトリから来ます。 私は、新規または変更されたファイルをバックアップすることにしたい。
現在、私はバックアップにDIRを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
私はかなり確信して、私はこのための正しい構文を持っています。各バックアップには、「現在」フォルダに対してチェック、およびnecesaryとしてのみアップロードされます。その後、現在のフォルダーを削除し、それだけでやった、最新のバックアップへのシンボリックリンクを再作成します。
私は、スクリプトを実行すると、私はエラーを取得しています:
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の制限です推測しています。
解決
はmanページからの2つのことはチェックする価値があるという目立ちます
ファイルのリンクがされていない場合は、その属性をダブルチェック。さらに いくつかの属性は、rsyncの者の強制外を取得しているかどうかを確認 コントロール、単一のルートをsquishesなAマウントオプション ユーザー、または一般的な所有権とリムーバブルドライブをマウント(など OS Xのようオプション)「このボリューム上の所有権を無視」ます。
と
前2.6.1にrsyncのバージョンでは、その可能性のあるバグがあったことを注 非スーパーユーザーのために正常に動作--link-DESTを防ぎます -oは(-aまたは暗示)指定されたとき。あなたは仕事アラウンドすることができます 古いrsyncのに送信-oオプションを避けることで、このバグます。
あなたは「所有権を無視する」オプションを持っていますオンになって?あなたが持っているんrsync
のバージョンは何?
また、手動でコマンドラインでln
を使用して、同様のハードリンクを作成しようとしている?
他のヒント
あなたのコマンドラインは一例で念のために:いつもの絶対のパス名とリンクdestのディレクトリを指定してください!それ...
を把握する私にかなりの時間がかかったの何かこれは同じ問題であるかどうかは知らないが、私はそれrsyncは先がFAT32パーティションとファイル名を持っているされ、同期ファイルことはできません知っている。それには(コロン)「」。 [ソースファイルシステムはEXT3であり、宛先がFAT32である
それはコロンを使用し、それが違いを作るかどうかを確認しないようにdate
コマンドを再設定してください。
例えばます。
THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`