私はこの仕事においてはただの素人だけだと言いたいです。以下のWebページから課題ファイルを入手してください。良い結果。
rsync -av --progress -e 'ssh -i ~/.ssh/godaddy5_rsa' $user@$server:${RemotePath}/ "${Answers}"
すべてのファイル名は次のとおりです。
1112223334_18BEwW4data
最初の生徒番号(1112223334)、次の_class(_18BE)、次の週番号(wW4 =冬学期4週目)、およびデータ
パスは次のとおりです。
RemotePath="public_html/18BE/php/uploads"
Answers="/home/pedro/winter2019-20/18BE/fastmarker"
もちろん、wWXは期間の経過とともに変化します。メイン番号を取得し、rsyncスクリプトに挿入するための小さなbashスクリプトを作成しました。
echo "First, enter the week number you want to get."
read week
echo "You are fetching winter week $week"
echo "If this is correct, enter y, if not enter n to abort."
read answer
if [ $answer = "n" ]; then
echo "You entered the wrong week number, aborting script, byebye. Start again!"
exit
fi
echo "You entered the correct week number, I'll carry on!"
これで、$weekという名前のファイルのみをインポートしたいと思います。次の週はwW4になります。
私はrsyncのマニュアルページを読み、--includeと--excludeのさまざまな組み合わせを試しました。
私が得るものは何もないか、すべてのファイルです。つまり、ファイル名にwW1、wW2、およびwW3も含まれるファイルです。
名前に$weekを含むファイルのみをインポートするようにrsyncにどのように指示する必要がありますか(次はwW4ですか?)
編集:提案していただきありがとうございます。私はこれを試しました:
rsync -av --progress -e 'ssh -i ~/.ssh/godaddy5_rsa' $user@$server:${RemotePath}/*_18BEwW4data "${Answers}"
残念ながら、私は何も得られませんでした。学生番号はすべて異なるため、ワイルドカードが必要です。
*.wW4で終わるようにいくつかのファイルの名前を変更した後、次のことを試しました。
rsync -av --progress -e 'ssh -i ~/.ssh/godaddy5_rsa' $user@$server:${RemotePath}*.wW4 "${Answers}"
Bashで次のエラーが発生します。
第三に、リモートサーバー上のファイルをこのコンピュータにインポートします。増分ファイルのリスト rsync を受け取る: link_stat "/home/myusername/public_html/18BE/php/uploads*.wW4" 失敗: 対応するファイルまたはディレクトリなし (2)
8 バイトの送信 123 バイトの受信 15.41 バイト/秒 合計サイズは 0 スピードアップは 0.00 rsync エラー: main.c(1668) から一部のファイル/プロパティ (前のエラーを参照) (コード 23) が送信されませんでした。 [受信者 =3.1.2]Pedro @pedro-school2:~$
すみません!私のせい! $ RemotePathでミスをしましたが、これで動作します!
感謝して面倒なのでごめんなさい!
答え1
rsync -av --progress -e 'ssh -i ~/.ssh/godaddy5_rsa' $user@$server:${RemotePath}/1112223334_18BEwW4* "${Answers}"
あまり深く考えないでください。インクルード/除外は不要で、ワイルドカードを使用するだけです。
すべてのタスクを含むディレクトリがあり、rsyncは次のような最新のタスクをインポートするので、実際に1週間運動する必要さえありません。
rsync -av --progress -e 'ssh -i ~/.ssh/godaddy5_rsa' $user@$server:${RemotePath}/1112223334_18BEwW* "${Answers}"
date +%U
はその年の週を返すので、それを使用してコースの週を自動的に生成できます。これは線形であり、毎週1ずつ増加すると仮定する。あるいは、インデックスがコースの週番号を指し、インデックスが年の週番号である配列を作成することもできます。または、線形関係の場合は、年 - 週数を加算または減算することができます。