Propaganda
Na última vez que conversamos sobre backups do WordPress, mostrei como era incrivelmente fácil fazer backup de todo o seu banco de dados e arquivos que SSH Como fazer backup do seu site através da linha de comando SSHFazer backup do seu site ou blog pode ser uma tarefa cara e árdua, exigindo uma variedade de plugins ou planos adicionais do seu provedor de hospedagem - mas não precisa ser realmente. Se você tiver SSH ... consulte Mais informação com apenas alguns comandos. Desta vez, mostrarei como automatizar esses comandos, oferecendo novos backups de todo o site toda semana, com muito pouco esforço. Isso também servirá como uma excelente introdução aos scripts de shell e ao CRON, se você nunca os tocou antes - a chave para aprender tópicos tão vastos é começar imediatamente, usando-os para fazer algo útil para você.
Recapitulando: Faça backup de tudo
Abordamos essa última vez, mas uma rápida recapitulação dos dois comandos necessários para fazer backup de seu banco de dados e arquivos e, supondo que você já fez login e se mudou para o diretório do site (leia o primeiro tutorial, se você não Compreendo). Certifique-se de fazê-los nesta ordem, para que seu backup de arquivo inclua o arquivo de banco de dados que você produz no primeiro comando:
mysqldump --add-drop-table -u nome de usuário -p nome do banco de dados> databasebackup.sql. tar -cf backupfile.tar.
Substitua o nome do usuário e nome do banco de dados itens com seu banco de dados e detalhes de nome de usuário.
Etapa 1 de automação: Script
Por enquanto, criaremos um novo script que simplesmente execute os comandos que você aprendeu para backup, com alguns alterações para incluir também a senha (como ela será automatizada, você não poderá digitar a senha toda vez). Quando terminarmos, você terá apenas um comando para executar que executará dois comandos para você!
Também é hora de você aprender a editar arquivos de texto por meio da linha de comando, já que não pode confiar no FTP e na GUI o tempo todo. Você pode usar um editor simples baseado em texto chamado vi para fazer isso.
Para iniciar o aplicativo e criar seu primeiro script, digite:
vi mybackupscript.sh
Se o arquivo já não existir, ele será criado e você verá uma tela bastante assustadora semelhante a esta:
O vi possui dois modos - modo de edição e comando. Para entrar no modo de edição, pressione i. Então você pode começar a digitar. Você saberá que funcionou, porque o canto inferior esquerdo girará para –INSERT–
Comece digitando o seguinte:
#! / bin / sh. mysqldump --add-drop-table -unome do usuário -psenhaNome da tabela > dbbackup.sql. tar -cf backup.tar.
Observe que, desta vez, estamos incluindo a senha no comando. Observe também que, quando usamos a opção -p para especificar a senha, colocamos a senha imediatamente após ela, sem espaço entre elas. Se preferir, você pode escrever o comando dessa maneira, mas funcionalmente não há diferença:
#! / bin / sh. mysqldump --add-drop-table --user =nome do usuário --password =senhaNome da tabela > dbbackup.sql. tar -cf backup.tar.
Agora precisamos salvá-lo. Pressione ESC uma vez para sair do modo de edição e entrar no modo de comando do editor de texto. Tipo:
:Escreva
e pressione enter, depois
:Sair
e entre novamente.
Então, a essa altura, você já deve ter percebido que quaisquer comandos que você der devem ser precedidos por dois pontos. Isso é tudo com vi por enquanto.
De volta à linha de comando, vá em frente e torne seu novo script executável digitando o seguinte:
chmod 744 mybackupscript.sh
E, finalmente, teste-o com:
./mybackupscript.sh
Obviamente, dependendo do tamanho do site e da velocidade do servidor, pode demorar um pouco. No final, você pode listar os arquivos e deve encontrar um backup.tar. No meu servidor privado virtual, foram necessários cerca de 5 segundos para criar o backup do site WordPress de 100 MB.
Etapa 2 de automação: CRON
CRON é um agendador de tarefas para Linux. Não abordaremos detalhadamente aqui, mas darei a você o que você precisa para executar seu script de backup toda semana. Também abordamos como executar tarefas CRON no painel de controle do site baseado em GUI. Para adicionar uma tarefa ao agendador CRON, basta adicionar uma linha ao "crontab". Edite isso digitando:
crontab -e
Isso abrirá o arquivo CRON no seu editor de texto, provavelmente vi novamente. Se você nunca adicionou nada antes, provavelmente também ficará em branco. Não se preocupe. Adicione estas linhas:
00 4 * * 0 /httpdocs/mybackupscript.sh
O formato que este comando segue é um pouco difícil, mas é assim:
minuto hora dia do mês mês dia da semana
Um * no padrão ignora esse item. Portanto, no exemplo acima, executaremos nosso script de backup em 00 minutos e 4 horas, a cada 0 (domingo) da semana.
Aqui estão alguns outros exemplos para ajudar você a entender:
01 * * * * echo "Este comando é executado em um minuto a cada hora" 17 8 * * * echo "Este comando é executado diariamente às 8h17" 17 20 * * * echo "Este comando é executado diariamente às 20:17" 00 4 * * 0 eco "Este comando é executado às 4 da manhã todos os domingos" * 4 * * Sun echo "Então é isso" 42 4 1 * * echo "Este comando é executado 4:42 da manhã todos os 1º do mês" 01 * 19 07 * echo "Este comando é executado a cada hora no dia 19 de julho"
Depois de inseri-lo, salve o arquivo pressionando ESC e digite: write e depois: encerre. Uma versão de atalho disso é apenas digitar: wq, que gravará o arquivo e será encerrado. É útil, mas se você for como eu, esqueça esses pequenos atalhos.
É isso aí! Agora você terá uma cópia atualizada do banco de dados e de todo o site na raiz, chamada backup.tar (ou o que você escolher). Convém aprender um pouco mais de scripts para adicionar a data no final do nome do arquivo e evitar a substituição do mesmo a cada vez, mas isso depende de você descobrir. Espero que você possa ver o quão poderosa é a linha de comando agora!
James é bacharel em Inteligência Artificial e possui certificação CompTIA A + e Network +. Ele é o principal desenvolvedor do MakeUseOf e passa seu tempo livre jogando paintball e jogos de tabuleiro em VR. Ele está construindo PCs desde que era criança.