![複数のユーザーアカウント間でのrsyncファイル](https://rvso.com/image/192234/%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E9%96%93%E3%81%A7%E3%81%AErsync%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.png)
使用するのは初心者ですrsync
が、1 台の PC 上の複数のユーザー アカウント間でファイルを rsync できるかどうか疑問に思っています。
コマンドを適用したいコンピュータではrsync
、各ユーザーが自分のユーザーアカウントに個別にログインする必要があります。たとえば、ユーザーが20人いる場合、その1台のPCには20のユーザーアカウントがあります。rsync
ルートアカウントからディレクトリやファイルにアクセスする方法はありますか?それぞれユーザーですか?ファイルを取得したいのは.csvフォーマット。
ありがとう!
答え1
ルート アカウントから rsync を使用して各ユーザーのディレクトリとファイルにアクセスする方法はありますか? .csv 形式のファイルのみを取得したいです。
このコマンドは、 内のすべてのものをバックアップし/home
、 の下のリモートホストに保存します/path/to/backup
。リモートファイルシステムが対応していれば、ユーザーの所有権と権限は保持されます。
rsync -av /home remoteHost:/path/to/backup/
リモート システムでルート アクセス権を持っていない場合は、-M--fake-super
ルート アクセスを必要としない方法でファイル メタデータ (所有権と権限) をバックアップするオプションを追加する必要があります。このフラグを使用する場合は、復元にも必ず使用してください。
質問の2番目の部分は、Rsync フィルター: 1 つのパターンのみをコピーするコピーを.csv
ファイルのみに限定するには、これを使用します
rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/
答え2
一般的には、はい。遭遇する問題は認証です。たとえば、cron から rsync スクリプトを実行できます。シェル スクリプトを自分で作成します。ソースと宛先がローカル コンピューター上にある場合は、root が機能します。
ソースまたは宛先がリモートの場合、これははるかに困難な作業です。最も簡単な方法は、問題を回避することです。NFS を使用してリモート ディスクをローカル コンピューターにマウントします。SSH 認証を調べることもできます...これは、調査すべきウサギの穴です。
OK。/root/backupuserlist は 1 行に 1 人のユーザーのリストであり、/backupdrive はそれらのユーザーのバックアップ先であると想定します。
#!/bin/bash
# backup /root/backupuserlist to /backupdrive
BK_USERS=`cat /root/backupuserlist`
BK_DRIVE=/backupdrive
for user in $BK_USERS; do
rsync -av ~$user/ $BK_DRIVE/$user/
done
/root/backuserlist を作成し、これを root として実行します... または、これを root の crontab または /etc/crontab に配置します... 要点はおわかりでしょう。