I'criei um script que roda todas as noites no meu servidor Linux que usa mysqldump
para fazer o backup de cada uma das minhas bases de dados MySQL para arquivos .sql e empacotá-los juntos como um arquivo comprimido .tar. O próximo passo que eu quero realizar é enviar esse arquivo tar por e-mail para um servidor de e-mail remoto, para guarda segura. I'fui capaz de enviar o script em bruto no corpo de um e-mail piping do arquivo de texto de backup para mailx
assim:
$ cat mysqldbbackup.sql | mailx [email protected]
cat
ecoa o arquivo de backup's text que é encanado no mailx
programa com o destinatário's email do destinatário passado como um argumento.
Enquanto isso realiza o que eu preciso, eu acho que poderia ser um passo melhor, Existe alguma forma, usando scripts shell ou de outra forma, de enviar o arquivo comprimido .tar para uma mensagem de e-mail de saída como um attachment? Isso seria melhor do que ter que lidar com mensagens de e-mail muito longas que contêm dados de cabeçalho e muitas vezes têm problemas de "word-wrapping", etc.
O programa mailx não tem a opção de anexar um arquivo. Você poderia usar outro programa como o mutt.
echo "This is the message body" | mutt -a file.to.attach -s "subject of message" [email protected]
Opções de linha de comando para mutt podem ser mostradas com mutt -h
.
Dependendo da sua versão do linux, pode ser chamado de correio. Para citar @David acima:
mail -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt
ou também:
cat message.txt | mail -s "Backup" -a mysqldbbackup.sql [email protected]
Você pode usar mutt para enviar o e-mail com anexo
mutt -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt