Vamos usar seu avatar por exemplo (salvar em /opt/download-avatar
)
#!/bin/bash
URL="https://www.gravatar.com/avatar/554f043fa658cba9bbc2ee4c6d4e052d?d=identicon"
timestamp=$(date +%F_%T);
wget "$URL" -O "${timestamp}.png"
Observação: pode ser melhor salvar os nomes de arquivos como segundos da epoch timestamp=$(date +%s)
Crie um cron cron para executá-lo a cada 5 minutos (salve em /etc/cron.d/timelapse-avatar
)
#!/bin/sh
*/5 * * * * /opt/download-avatar
Torne os scripts executáveis
chmod +x /opt/download-avatar
sudo chmod 755 /etc/cron.d/timelapse-avatar
Se você não quiser usar cron
, simplesmente (salve em ~/start-timelapse
)
#!/bin/bash
input="$1"
URL="https://www.gravatar.com/avatar/554f043fa658cba9bbc2ee4c6d4e052d?d=identicon"
if [ -z "$input" ]; then
echo "USAGE: $0 [interval in minutes]"
exit 1
else
interval=$((60*input));
fi
while [ 0 = 0 ]; do
timestamp=$(date +%s)
wget "$URL" -O "${timestamp}.png"
echo "Sleeping for $input minutes"
sleep "$interval"
done;
Torne executável e execute em intervalos de 7 minutos
chmod +x ~/start-timelapse
cd ~
./start-timelapse 7
ATUALIZAÇÃO:
Obrigado slhck .
Nigel , por padrão cron
é executado como usuário root . Não é pertinente a esta pergunta, mas tecnicamente é executado como um "usuário especial", não interativamente, sem variáveis ambientais, como $PATH
, sem o ID de sessão dbus
, sem o X
id da sessão, etc.
~/
é uma abreviação para o diretório inicial de um usuário (veja também a variável de ambiente $HOME
). Por padrão, para usuários , isso seria, por exemplo, /home/nigel
, mas para root , isso é /root
, portanto, provavelmente, cron os salvou codificar%. Você poderia usar:
wget "$URL" -O "/home/nigel/pdm-5min/${timestamp}.png"
MAS, os arquivos seriam de propriedade de root , então nigel não seria capaz de movê-los, excluí-los, editá-los, a menos que você se autorize root (ou através de /root/pdm-5min
)
Portanto, você pode optar por executar sudo
como seu usuário nigel .
#!/bin/sh
*/5 * * * * nigel /opt/download-avatar
Certifique-se de que o diretório em que você está salvando existe, queira adicionar diretamente antes da linha cron
:
mkdir -p /home/nigel/pdm-5min/
Por último, tenha cuidado com seu wget
(aspas). Use-os para que as variáveis retenham espaços em branco (espaços, tabulações, etc.), mas certifique-se de que cada uma daspas simples ou duplas tenha uma correspondência, não é opcional.