Parece que s3cmd
pode aceitar entrada de stdin pelo menos de acordo com a resolução de este bug em 06/02/2014. Se o seu s3cmd é mais novo do que você deve ser capaz de fazer:
tar -czvf - ${BACKUP_DEST} | s3cmd --reduced-redundancy put - s3://MY-S3-BUCKET/'date +\%G-\%m-\%d'_db.tar.gz --no-encrypt
A maioria dos utilitários usa -
como um nome de arquivo para indicar a gravação em stdout ou leitura de stdin. Isso eliminará ter o arquivo .tar.gz na sua unidade.
No que diz respeito a senhas / chaves / etc, parece que você pode especificar um arquivo de configuração para s3cmd com -c FILENAME
, presumivelmente você usaria os comandos gerados adicionando --dump-config
a uma linha de comando s3cmd
completa para crie o arquivo. Você ainda precisa proteger esse arquivo, no entanto. Da mesma forma, o MySQL tem seu arquivo ~/.my.cnf
(veja aqui para um exemplo) onde você pode armazenar informações de conexão.
Além disso, como você já está compactando os dumps de banco de dados individuais, suspeito que gzipar o tar novamente não comprimirá muito mais os dados e fará com que todo o processo demore mais. Considere apenas usar -cvf -
e .tar
para o nome do arquivo.