verbose モードは GPU の性能にも左右される
ファイル数が多ければ多いほど verbose モードだと
インターネット回線の速度やGPUの影響を受ける事があります。
下記の例ではローカルのdockerで実行したので
--verbose 有りと無しで大した差が出ませんでしたが、
これがインターネット回線越しなら重そうだな... と伝われば幸いです。
verbose 有り | verbose 無し |
---|---|
real 0m3.834s | real 0m3.613s |
user 0m0.121s | user 0m0.028s |
sys 0m0.962s | sys 0m0.582s |
しかし verbose を OFF った cp -R [コピー元] [コピー先] じゃ画面が動かないので、どこまで進んでいるか分からんのです...
そんな時は > result.txt 2>&1 &
🎉 result.txt とかファイル名はお好みで。
$ time(cp -Rfpv qiita copy-test) > result.txt 2>&1 &
$ tail result.txt
'qiita/movabletype/xt/use_close_tag.t' -> 'copy-test/qiita/movabletype/xt/use_close_tag.t'
'qiita/movabletype/yarn.lock' -> 'copy-test/qiita/movabletype/yarn.lock'
real 0m2.582s
user 0m0.024s
sys 0m0.706s
作業の合間にでも tail で確認しましょう。
サーバー上で実行するなら sh + nohup が安全
$ vi copy.sh
#!/bin/bash
time(cp -Rfpv /tmp/qiita /tmp/copy-test)
↑ シェルでやる時は絶対パスで指定した方が安全かつ一目瞭然です
$ chmod 700 copy.sh
$ nohup ./copy.sh > result.txt 2>&1 &
これでSSHの接続が切れても実行し続ける事が出来ます
別に sh を作らなくても nohup シェル芸 でいけますが、
いざという時に ps -ajxwww | grep [スクリプト名]
で
プロセスID見つけて落とす事ができるので、慣れておいて損はないかと。
ところで、RHEL 9 で試したところ nohup ではないバックグラウンド実行(&)でも
SSH接続切っても実行され続けたのですが、仕様が変わった...?