Se você quer uma soma de verificação MD5 especificamente, você poderia enviar o conteúdo para um arquivo e soma de verificação, em seguida, enviar o arquivo e a soma de verificação (com um delimitador) para o correio.
Usando o MD5
Se você quiser usar uma soma MD5, poderá editar seu script para o seguinte, que gravará em um arquivo temporário, gerará a soma de verificação, anexará e enviará o email.
#!/bin/sh
outfile=$(mktemp)
echo -e "\nUptime" > $outfile 2>&1
uptime >> $outfile 2>&1
last -x --since yesterday >> $outfile 2>&1
md5=$(md5sum $outfile | cut -f1 -d' ')
echo-e "\n==============================\n${md5}\n" >> $outfile 2>&1
cat $outfile | mail -s "Info" user
rm $outfile # don't forget this - clean up your /tmp!
Isto irá capturar todas as mensagens STDERR e STDOUT no arquivo de log e enviá-lo por e-mail com a soma de verificação MD5 adicionada à parte inferior, para que você possa colocar a saída novamente em um arquivo e reconfigurá-la.
Usando o GPG
Como alternativa, você pode criar (ou usar um existente) uma chave GPG que possa ser usada para assinar mensagens provenientes do seu servidor. Dado que isso será configurado para assinar mensagens de forma automatizada, recomendo enfaticamente não usar essa chave para nada que você precise manter em segurança ou precisar ter alta confiança, assim como sua máquina deve ser violada, essa chave será comprometida .
A maneira mais fácil de fazer isso seria gerar uma chave GPG com gpg --gen-key
no servidor (ou seja o que for). A maioria dos detalhes não importa, mas um deles é a frase secreta. Com isso, você pode:
- Definir uma frase secreta em branco ( não recomendado - nunca criar chaves no-pass)
- Defina a frase secreta e salve no arquivo restrito (
chmod 400
) - Defina a passphrase e passe-a no comando GPG
Para este exemplo, mostrarei uma chave que tenha uma frase secreta que tenha sido adicionada a um arquivo com permissões adequadas. Crie sua chave e configure a frase secreta da seguinte forma:
~ » gpg --gen-key
# enter in details for key
...
pub 2048R/B44FD582 2015-02-28 [expires: 2015-03-01]
Key fingerprint = CFAD 2D53 BB7F CA22 147C 9300 E858 EE8A B44F D582
uid mytestkey (This is my key) <[email protected]>
sub 2048R/D3AEDE76 2015-02-28 [expires: 2015-03-01]
~ » echo -n 'mypassphrase' > ~/.ssh/gpgsignkey
~ » chmod 400 ~/.ssh/gpgsignkey
~ » gpg -a --export [email protected] > myserver.key.asc
Até agora você terá uma chave em seu servidor que pode ser usada para assinatura, com a frase secreta em um arquivo restrito em um local seguro (~ / .ssh é mantido bem apertado), e você tem a chave pública em myserver.key.asc
que você pode importar em sua máquina local para verificar a mensagem recebida.
Você pode então modificar seu cron job para executar um script que executa seu comando e, em seguida, canaliza a saída pelo gpg para assinar a mensagem a caminho do seu servidor de e-mail.
#!/bin/sh
outfile=$(mktemp)
echo -e "\nUptime" > $outfile 2>&1
uptime >> $outfile 2>&1
last -x --since yesterday >> $outfile 2>&1
cat $outfile | gpg --clearsign -u [email protected] --passphrase-file /root/.ssh/gpgsignkey | mail -s "Info" user
rm $outfile
Você pode então importar a chave pública para o seu cliente de E-Mail (desde que o suporte) ou outro mecanismo de verificação de chave, e autenticar que a mensagem recebida realmente foi a mensagem que foi enviada.