Primeiramente, explique por que nada acontece, provavelmente por causa da sintaxe. Seu comando ssh é do formato: ssh server
, que é quando você deseja apenas efetuar login e, em seguida, digitar manualmente alguns comandos de forma interativa. Mas se você quiser que algum comando seja executado automaticamente após o login, você deve estar fazendo: ssh server somecommand
, portanto, ter apenas somecommand
na próxima linha não funcionará.
Bem, se você quiser que um sistema envie informações sobre o espaço em disco sempre que quiser e, ao mesmo tempo, ofereça suporte a emails programados, eu recomendaria um sistema com três partes:
- um script no servidor que obtém as informações de disco e a lógica de e-mail, por exemplo, em
/home/yourusername/script.sh
- crontab para executar o script.sh
- por suas solicitações arbitrárias, por capricho, você pode ssh e executar o script
script.sh
Este é o script que você coloca no servidor, por exemplo, em /home/yourusername/script.sh.
#!/bin/bash
s="Disk Space Alert: $(df / | grep / | awk '{ print $5}')"
mail -s $s [email protected]
# Feedback
echo $s
Eu removi o sed
porque ele simplesmente removeu o sinal %
, mas você o adicionou mais tarde, isso parece um uso redundante do sed, então eu o removi.
crontab
Edite crontab no seu servidor, por exemplo, ssh no seu servidor e então continue com estes comandos
$ crontab -e
Você sabe que o formato é
# m h dom mon dow command
para diariamente todos os dias às 8h
0 8 * * * /home/yourusername/script.sh
Portanto, contanto que você já tenha testado o script e saiba que ele funciona para enviar e-mails, o crontab executará o script e fará com que o e-mail seja enviado às 8h todos os dias
solicitação arbitrária para obter informações de disco enviadas por e-mail
Você acabou de ssh mas colocou o comando de script no final
ssh -p 1111 [email protected] /home/yourusername/script.sh
Isso usa a sintaxe ssh ssh server somecommand
para que efetue login, execute qualquer comando e retorne resultados para a saída padrão local.
Como ele tem a linha de feedback, não apenas deve ser enviado por e-mail, mas você também verá a mensagem Disk Space Alert: ...
para que, pelo menos, receba um feedback imediato de que seu script foi executado ou não.