Qual é a maneira mais fácil de zipar arquivos importantes no meu VPS e enviá-los por e-mail para mim?

2

Se eu quisesse zipar (ou tar.gz) uma lista de caminhos (recursivamente) em um VPS do Linux, envie o ZIP / TAR por e-mail para mim e exclua o ZIP / TAR, qual é a maneira mais fácil de fazer isto? Um script de shell em um cron job, um programa, etc.?

Por exemplo, eis o que eu provavelmente faria:

  1. Pare o apache, o mysql, o postgresql e o rack

  2. Zip up:

    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*
    /home/kerrick/*
    /var/lib/mysql/*
    # etc.
    
  3. Envie um e-mail para o arquivo zip como um anexo para [email protected]

  4. Exclua o arquivo zip

  5. Retomar o apache, o mysql, o postgresql e o rack

por Kerrick 20.06.2012 / 07:05

2 respostas

5

Você pode usar o próximo script, atualizar se, claro, com suas informações:

#!/bin/sh

[ -f /etc/redhat-release ] && service httpd stop
[ -f /etc/debian_version ] && service apache2 stop
service mysqld stop
service postgresql stop
#Do the same for rack, not sure what the service is called.

zip -r /tmp/all_needed.zip /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ /home/kerrick/ /var/lib/mysql/ # etc.
mail -s "test" [email protected] <  /tmp/all_needed.zip
rm -f /tmp/all_needed.zip

[ -f /etc/redhat-release ] && service httpd start
[ -f /etc/debian_version ] && service apache2 start
service mysqld start
service postgresql start
#Do the same for rack, not sure what the service is called.

Faça com que seja executado como um cron, se necessário. Mas, de fato, seria melhor scp ou ftp, por exemplo, em vez de enviá-lo por e-mail, pois o pacote zip pode ser muito grande e não será enviado como um anexo.

    
por 20.06.2012 / 11:41
1

O mais fácil, claro, seria um script bash sendo executado como um cron job, contendo:

  • Pare o Apache, MySQL, PostgreSQL e Rack usando o comando service ou /etc/init.d script invocations
  • Um ou vários comandos tar para criar tarballs dos arquivos que você deseja compactar - coloque os tarballs em um diretório temporário, por ex. / tmp
  • Envie os tarballs usando qualquer programa de mailer que possa manipular anexos -or -
  • Faça uma codificação base64 dos tarballs e canalize o resultado para o programa mailer
  • Exclua os tarballs em / tmp (ou qualquer diretório que você esteja usando)
  • Inicie os serviços novamente

Além disso, você pode colocar comandos de 'instrumentação' entre todas as etapas, escrevendo em um arquivo de log (personalizado) ou em um servidor syslog.

    
por 20.06.2012 / 07:20

Tags