Como fazer backup apenas das imagens originais do WordPress com WP-CLI
Tags: wordpress, wpcli, productivity
Published: 2020-02-27 21:06:17

---
title: Como fazer backup apenas das imagens originais do WordPress com WP-CLI
published: true
description: Neste tutorial você vai aprender a fazer backup apenas das imagens originais (e não das miniaturas) de sua biblioteca do WordPress usando o WP-CLI.
tags: wordpress, wp-cli, productivity
---

Sou membro de uma comunidade de WordPress no WhatsApp. Hoje, um membro fez a seguinte pergunta:

> "Eu preciso fazer um backup de todas as imagens de um site, mas apenas das originais. Eu não preciso das miniaturas (thumbnails). Alguém sabe como fazer isso?"

## TL;DR

Se você estiver com pressa e não tiver tempo para ler todo o artigo, basta executar os seguintes comandos em seu Terminal.

```
# Usando o WP-CLI, para exportar a URLs de todas as imagens originais do seu site em um arquivo txt.
$ wp post list --post_type=attachment --field=guid > wp-content/uploads/imagens.txt
```


```
# Usando o wget, para baixar todas as imagens de uma só vez pro seu computador (ou servidor):
$ wget -i https://seusite.com/wp-content/uploads/imagens.txt
```

Se você pesquisar no Google "como fazer backup das imagens originais no WordPress" ou algo parecido, você vai encontrar vários artigos sobre como fazer na backup de imagens, mas *não apenas* as imagens originais.

Toda vez que você faz upload de uma imagem em um site feito com WordPress, normalmente ele armazena o arquivo original, além de versões desse arquivo em diferentes tamanhos.

```
-rw-r--r--   1 user  group    5845 Feb 25 18:07 foto-01-150x150.jpg
-rw-r--r--   1 user  group   20045 Feb 25 18:07 foto-01-300x300.jpg
-rw-r--r--   1 user  group  115432 Feb 25 18:07 foto-01-768x768.jpg
-rw-r--r--   1 user  group  164387 Feb 25 18:07 foto-01.jpg
```

Na lista acima, o arquivo original é o `foto-01.jpg`. Os outros 3 arquivos são miniaturas dessa imagem nos tamanhos 150x150 pixels, 300x300 pixels e 768 x 768 pixels, respectivamente.

O exemplo acima eu retirei de um site que está usando o tema [Twenty Twenty](https://wordpress.org/themes/twentytwenty/). As miniaturas geradas dependem do tema que você está usando.

Mas identificar as imagens originais é apenas uma etapa do processo, pois outro grande problema é que o WordPress normalmente armazena os arquivos em sub-pastas seguindo o formato *AAAA/MM*, onde AAAA é o ano com 4 dígitos e MM é o mês com 2 dígitos.

Então se você fizer upload de uma imagem no dia 20 de fevereiro de 2020, ele deve armazená-la na pasta `wp-content/uploads/2020/02/`.

Se o seu site foi criado em janeiro de 2019 e você fez upload de pelo menos um arquivo por mês, sua pasta uploads deve de ter uma pasta 2019 com 12 sub-pastas para cada mês do ano.

```
wp-content/uploads/2019/01/
wp-content/uploads/2019/02/
wp-content/uploads/2019/03/
...
wp-content/uploads/2019/10/
wp-content/uploads/2019/11/
wp-content/uploads/2019/12/
```

Então, dependendo de quantas imagens o seu site tiver, você pode levar horas ou até dias para fazer o backup dessas imagens!

Mas calma, porque a solução é mais simples do que você pode imaginar!

## Como baixar múltiplos arquivos de uma só vez?

Se você usa macOS, Linux, ou WSL no Windows, é possível fazer download de múltiplos arquivos de uma só vez usando o comando `wget -i arquivo.txt`, onde **arquivo.txt** é um arquivo contendo uma lista de URLs, mas cada uma delas em uma linha separada.

```
https://seusite.com/wp-content/uploads/imagem-01.jpg
https://seusite.com/wp-content/uploads/imagem-02.jpg
https://seusite.com/wp-content/uploads/imagem-03.jpg
https://seusite.com/wp-content/uploads/imagem-04.jpg
https://seusite.com/wp-content/uploads/imagem-05.jpg
```

Agora que já sabemos como baixar tudo de uma vez só, precisamos descobrir como pegar as URLs de todas as imagens originais de um site em WordPress.

## WP-CLI é a solução!

> [WP-CLI](https://wp-cli.org/) é uma interface de linha de comando para WordPress. Você pode atualizar plugins, configurar instalações multisite e muito mais, sem usar um navegador.

O WP-CLI é uma ferramenta super poderosa para gerenciar um site em WordPress através da linha de comando.

Pra exportar as URLs das imagens em um arquivo, basta executar o seguinte comando em seu Terminal:

```
$ wp post list --post_type=attachment --field=guid > wp-content/uploads/imagens.txt
```

Agora vou explicar cada parte desse comando:

1. `wp post list` é um comando para listar todos os posts no WordPress
2. `--post_type=attachment` é um argumento pra retornar apenas os arquivos
3. `--field=guid` é um argumento pra retornar a URL de cada um desses arquivos
4. ` > wp-content/uploads/imagens.txt` é um comando para exportar o resultado do comando `wp post list --post_type=attachment --field=guid` em um arquivo chamado `imagens.txt` e armazená-lo na pasta `wp-content/uploads/`.

## Como baixar as imagens de uma só vez (e fazer o backup)

Após rodar o comando acima, você deve ter um arquivo localizado em `https://seusite.com/wp-content/uploads/images.txt`.

Agora, abra novamente seu terminal, execute o comando `cd` até a pasta onde você quer baixar as imagens, e execute o seguinte comando:

```
$ wget -i https://seusite.com/wp-content/uploads/imagens.txt
```

Assim que você pressionar Enter/Return, o `wget` vai baixar todas as imagens contidas no arquivo *images.txt* para a pasta do computador (ou servidor) onde você executou esse comando.

Você pode baixar as imagens para suas pastas do Dropbox, OneDrive, Google Drive, iCloud, ou qualquer outro serviço de armazenamento de arquivos.

E pronto! Seu backup estará concluído!