Comando de backup tar para excluir arquivos de backup e cache e incluir apenas subdiretórios httpdocs

Comando de backup tar para excluir arquivos de backup e cache e incluir apenas subdiretórios httpdocs

Estou procurando um comando tar que atenda aos seguintes requisitos:

Quero excluir todos os arquivos que terminam com: backwpup & .zip (entre e antes pode ser qualquer um, por exemplo, uploads/123backwpup-123.zip) Quero excluir todas as pastas na área /media/backup/ & /application/cache/

Eu começo em um nível parecido com este:

  • exemplo.com
  • exemplo.de
  • exemplo.org

Com subdiretórios para cada um:

  1. /etc/
  2. /httpdocs/
  3. /lib/
  4. ...

Somente o conteúdo de /httpdocs/ precisa ser salvo.

Eu tentei com o comando:

tar --exclude={"*backwpup*.zip", "*/media/backup/*", "*/application/cache/*"} -czvf backup.tar.gz **/httpdocs

Mas infelizmente backups com caminhowp-content/uploads/backwpup-4578-backups/2022-10-31_12-22-31_IKXUCSLD01.zipainda estão incluídos.

Responder1

Você pode tentar usar o seguinte comando tar:

tar --exclude='backwpup.zip' --exclude='/media/backup/' --exclude='/application/cache/' -czvf backup.tar.gz example.com/httpdocs example.de/httpdocs example.org/httpdocs

Este comando exclui todos os arquivos que terminam com “backwpup” ou “.zip”, bem como pastas nos locais especificados. Também inclui apenas os subdiretórios "httpdocs" em cada diretório de domínio

Responder2

Talvez desta forma?

find * -type d \( -path '*/media/backup/*' -o -path '*/application/cache/*' \) -prune -o -path '*/httpdocs/*' -type f ! -name '*backwpup*.zip' -print0 | tar -czvf backup.tar.gz --null -T -

Responder3

Supondo que você esteja usando GNU tar, consulte a documentação sobre como excluir arquivos:https://www.gnu.org/software/tar/manual/html_node/exclude.html Isso detalha a correspondência de padrões:https://man7.org/linux/man-pages/man7/glob.7.html

Supondo que você use o GNU BASH, você poderia percorrer os diretórios usando um loop for:https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.htmlusando expansão de nome de arquivo (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)

No final desta página estão bons exemplos: https://linuxize.com/post/bash-for-loop/

informação relacionada