完了したアップロードを別のフォルダに移動しながらSFTPでrsync

完了したアップロードを別のフォルダに移動しながらSFTPでrsync

大容量データ(30 GB)をサーバーに移動していますが、このサーバーは複数の 200 MB tar.gz ファイルに分割されています。これには時間がかかり、プロセス中にコンピュータを停止して再起動する必要があるため、転送は中断されます。

私がしたいことは次のとおりです。

find . -maxdepth 1 -type f -iname "*.tar.gz.*" | while read file ; do
    scp "$file" username@host:/backup/
    mv "$file" "already-done/"
done

残念ながら、SSHキーは私が制御できない非標準設定なので、このボックスにコピーすることはできません。したがって、接続を作成するたびに手動でパスワードを入力する必要があるため、上記のwhileループは非生産的です。 rsyncを使用して単一の永続SSH接続を介してこのサーバーにファイルをコピーし、完了したバックアップを別のディレクトリに移動して、新しい起動時に再コピーしないようにする方法はありますか?

答え1

2つの提案があります。

  1. scp への呼び出しを、これらの状況を処理するように設計された rsync への呼び出しに置き換えます。
  2. whileループを使用する必要はありません。 globを使用してファイルを直接呼び出すだけです。 findコマンドは最大深度1を使用するため、rsync -t *.tar.gz.* username@host:/backup/Rsyncはコピーされたファイル、コピーされていないファイル、およびそのファイルの正確性を確認します。接続を介して変更を送信します。

関連情報