Existe um monte de coisas legais que podem ser feitas com scripts! Uma coisa que sempre quis fazer é criar um sistema de backup que roda automaticamente em um certo ponto do dia. Agora que descobri como fazer, vou lhes mostar como criar um script com os comandosrsync
e crontab
.
Passo 0: Tudo começa com um BANG
Crie um script chamado fazBackup.sh
, contendo algo assim:
#!/bin/bash
echo Inicializando script de backup.
O comentário #!/bin/bash
é uma diretiva que anuncia que interpretador deve ser usado. Neste caso, o interpretador é o bash
, mas poderia ser python
ou node
. Tal diretiva é chamada de shebang
.
Precisamos de um script executável, o que significa a necessidade de permissão para execução. Para modificar tal política, usamos o comando chmod
. Este comando tem duas formas de adotar novas políticas: números e letras. Aqui será usado a forma de letras e todos os usuários serão capazes de executar o script. (Para saber mais sobre o chmod
, aqui) está a documentação em inglês.)
No terminal, escreva:
chmod a+x makebackup.sh
# a means all users
# + means adding a permission (a minus (-) would be removing it).
# x means permission to execute
Passo 1: De onde veio, pra onde foi
Nós usaremos o rsync
para copiar os items, porém você poderia usar outras ferramentas, como o commando cp
. Para aprender mais sobre o rsync
, leia esse tutorial (em inglês).
Dentro do fazBackup.sh
, escreva o seguinte:
#!/bin/bash
echo Inicializando script de backup.
rsync [Fontes] /caminho/para/[Destino]/
# Fontes são todos os arquivos e pastas a serem guardados
# Destino é a pasta onde o backup será guardado
echo Backup finalizado. Teminando script.
Lembrete! A pasta de [Destino] não precisa existir previamente, pois rsync
cria a pasta no diretório. Tudo o que precisa fazer é colocar o nome desejado, seguindo por uma barra ('/').
Step 2: Tenho um trabalho pra você
Antes de configurar o cronjob, você precisa definir a agenda. Quando que o backup deve ser feito? Use a ferramenta Crontab Guru para decidir quando você quer o trabalho feito — diariamente, semanalmente, mensalment, etc.
Depois, você configura o cronjob, que é bem fácil! Digite crontab -e
no terminal, e ele abrirá um crontab com umas informações bacanas — vale a pena dar uma olhada. Dentro desse arquivo, vá ao final, cole a data que você criou no Crontab Guru, e escreva todo o caminho absoluto para o script executável. Algo assim:
# Crontab file
00 10 * * * /caminho/para/fazBackup.sh
Passo 3: E fim
E pronto! Teu script de backup está automatizado.
Uns avisos e considerações
O serviço cron
leva um ou dois minutos para atualizar, então se você quiser testar imediatamente, mantenha o timing em mente: coloque a execução do script uns 3 minutos depois de salvar o crontab.
Outra coisa a saber: você poderia agendar o comando tar
, em vez de criar um script personalizado. Ficaria algo como:
# Crontab
# at 10:30 am, everyday, do
30 10 * * * tar cvzf /caminho/para/arquivo_de_saida.tar.gz /caminho/para/diretorio_de_entrada/
Conclusion
Espero que este artigo tenha ajudado! O serviço cron
é bastante poderoso, assim como é o scripting em bash
. Você pode criar todos tipos de tarefas agendadas e tornar sua máquina linux num mordomo pessoal! Se tiver ideas do que mais pode ser feito com cron
ou sugestões de melhoria para este artigo, comente abaixo!
Top comments (0)