Você não deve usar dd
se quiser excluir alguns diretórios e / ou arquivos, é quase impossível (sem corromper o sistema de arquivos excluindo setores aparentemente de forma aleatória).
E você não pode fazer um backup dd
adequado de uma partição montada, pelas mesmas razões que você não pode fsck
uma partição montada (já que parece que você está perguntando "Eu quero para 'dd if = sda de = sda ")
E você poderia fazer isso com dd
em vez de usar pv
:
Sending a USR1 signal to a running 'dd' process makes it print I/O sta‐ tistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Mas provavelmente seria melhor usar tar
com possivelmente algumas opções, como:
--exclude=PATTERN
exclude files, given as a PATTERN
--exclude-tag=FILE
exclude contents of directories containing FILE, except
--exclude-tag-all=FILE
exclude directories containing FILE
--exclude-tag-under=FILE
exclude everything under directories containing FILE
-z, --gzip, --gunzip --ungzip
-J, --xz
-T, --files-from FILE
get names to extract or create from FILE
-X, --exclude-from FILE
exclude patterns listed in FILE
Veja man tar
e inúmeros exemplos na web.
A menos que você esteja fazendo backup de algum SO ou programa estranho que espera que os arquivos estejam em um determinado local no disco, talvez você queira uma cópia dd
de uma partição / disco inteiro desmontado , canalizado para gzip
/ xz
/ etc.