Aqueles que trabalham com
Linux a algum tempo sabem que é essencial executar scripts na inicialização, seja um script de firewall, limpeza de algum diretório, script de backup etc, as possibilidades são infinitas.
SYSTEMD SERVICE UNIT
Primeiro crie um script de inicialização systemd chamado "
disk-space-check.service" com o conteúdo abaixo e coloque dentro do diretório
/etc/systemd/system/:
[Unit]
After=mysql.service
[Service]
ExecStart=/usr/local/bin/disk-space-check.sh
[Install]
WantedBy=default.target
- After: instrui o systemd quando o script deverá ser executado. No nosso caso, o script executará depois que o serviço mysql estiver sido inicializado.
- ExecStart: este campo exige o caminho completo até o script a ser executado.
- WantedBy: o alvo de boot ao qual o systemd unit deverá ser instalado.
As opções configuradas acima são o mínimo que o systemd necessita para executar o script na inicialização do sistema. Para mais informações e opções a serem utilizadas veja systemd.service nas páginas de manual.
SCRIPT A SER EXECUTADO
Agora nós criaremos o script para ser executado durante o boot time do systemd. A localização e o nome do script já está definido no service unit criado anteriormente, "/usr/local/bin/disk-space-check.sh". O conteúdo do script é bem simples:
#!/bin/bash
date > /root/disk_space_report.txt
du -sh /home/ >> /root/disk_space_report.txt
CONFIGURAÇÃO E INSTALAÇÃO
Antes de dar um reboot no sistema temos que tornar o script executável, digite o seguinte comando:
# chmod +x /usr/local/bin/disk-space-check.sh
Instale o service unit criado no passo 1 para que ele possa ser executado na inicialização.
# chmod 664 /etc/systemd/system/disk-space-check.service
# systemctl daemon-reload
# systemctl enable disk-space-check.service
Created symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.
Se você quiser testar o script antes de reinicializar o sistema execute o seguinte comando:
# systemctl start disk-space-check.service
# cat /root/disk_space_report.txt
Thursday 7 July 11:30:25 AEST 2016
1.5G /home/
Tudo pronto. Depois de reinicializar seu sistema Linux, o systemd invocará o shell script criado e executará no boot time.