6

smbclient putを使用して、おそらくpvdialogを使用して、またはその他のオプションを使用して、リモートコピー中にプログレスバーを表示しようとしています。

smbclient-putコマンドは正常に機能します:

smbclient //usbrouter/backup --user=myusername mypassword -c "put /media/DOC/BackupAuto/work_backup.tar.gz work_backup.tar.gz"

しかし、私はコピーの進行状況を示す方法を見つけることができません。誰かが解決策/代替案を持っていますか?

ありがとう。

4

2 に答える 2

10

プログレスバーをサポートしていないファイル転送操作を確認したい場合、またはプログレスバーモードで開始するのを忘れた場合は、これを実行します。

ファイルのローカルコピーの合計サイズを計算します(work_backup.tar.gz)。たとえばls、、statまたはdu。次に、ターゲットファイルの場所に移動します(同じマシン上にある場合、sshまたはcd同じマシン上にある場合)。問題

watch -- du -h work_backup.tar.gz

これは少しハッキーですが、それぞれのコピージョブを開始した後でも機能し、想像できるすべてのコピーメカニズムでほぼ機能します。

于 2012-07-26T09:47:21.740 に答える
0

あなたが言ったようpvに、仕事に最適です:

file="work_backup.tar.gz"
pv "/media/DOC/BackupAuto/${file}" \
  | smbclient \
    --user=myusername%mypassword \
    --command "put - '${file}'" \
    //usbrouter/backup 

または逆に、進行状況を確認するには、次のようにします。

file="work_backup.tar.gz"
size="$( \
  smbclient \
    --user=myusername%mypassword \
    --command "ls '${file}'" \
    //usbrouter/backup \
    2> /dev/null \
    | grep "${file}" \
    | awk '{print $3}')"

smbclient \
  --stderr \
  --user=myusername%mypassword \
  --command "get '${file}' /dev/stdout" \
  //usbrouter/backup \
  | pv -s "${size}" \
  > "/media/DOC/BackupAuto/${file}"

--authentication-file必須の補足事項:このようにパスワードを指定するのではなく、代わりに他のオプションのいずれかを使用してください

于 2020-04-12T22:09:05.247 に答える