Você está quase lá! Isso deve fazer:
tar zcvf /opt/rnd/home-$(date +%d%m%y).tar.zip */{Desktop,Documents,Pictures,.thunderbird} --exclude=user4 --exclude=user5
O que eu estou tentando fazer backup?
Desktop
, Documents
, Pictures
, thunderbird
que eu preciso fazer backup de todos os usuários /home
partição com o respectivo nome de usuário /home
, que precisam ser excluídos O que eu tentei até agora?
$ tar cvf home01 -T include /home
OBSERVAÇÃO: T, que diz apenas pegar o que é mencionado no arquivo, mas não funciona
$ find . \( -name \*Desktop -o -name \*Documents\* -o -name \*Pictures\* -o -name \.thunderbird\* \) |
xargs tar zcvf /opt/rnd/home-$(date +%d%m%y).tar.zip
OBSERVAÇÃO: que faz backup do mention dir, mas coloca todos os usuários em uma pasta.
$ ls -l /home
/home/user1/{Desktop,Documents,Pictures,.thunderbird}
/home/user2/{Desktop,Documents,Pictures,.thunderbird}
/home/user3/{Desktop,Documents,Pictures,.thunderbird}
/home/user4/{Desktop,Documents,Pictures,.thunderbird}
/home/user5/{Desktop,Documents,Pictures,.thunderbird}
A partir do qual eu preciso levar apenas user1
, user2
, user3
home dir backup e excluir user4
, user5
Você está quase lá! Isso deve fazer:
tar zcvf /opt/rnd/home-$(date +%d%m%y).tar.zip */{Desktop,Documents,Pictures,.thunderbird} --exclude=user4 --exclude=user5
Aqui está uma maneira de manter o uso do comando find
:
$ find . \( -type d -path */Desktop -o -path */.thunderbird -o -path */Pictures \) \! -path '*user[45]*' -prune | xargs tar zcvf /opt/rnd/home-$(date +%d%m%y).tar.gz
Aqui está uma versão mais fácil de analisar:
$ find . \( -type d \
-path */Desktop -o -path */.thunderbird -o -path */Pictures \) \
\! -path '*user[45]*' -prune \
| xargs tar zcvf /opt/rnd/home-$(date +%d%m%y).tar.gz
Isto irá encontrar todos os diretórios com os nomes no primeiro bloco parens \( ... \)
. Estes são os diretórios:
*/Desktop
*/thunderbird
*/Pictures
A segunda parte exclui todos os caminhos que correspondem ao padrão *user[45]*
. Estes pare podados fora da lista. Finalmente, a lista de diretórios resultante é passada para o tar.
O texto acima é NÃO à prova de balas. Exclui caminhos que incluam a string user4
ou user5
neles. Além disso, alguns cuidados devem ser tomados para garantir que o que quer que você construa como um comando possa lidar com espaços em nomes de arquivos.
Tags backup