Jak automatycznie wykonać skrypt powłoki podczas uruchamiania systemu systemd Linux

Poniższy config omówi podstawowy przykład, jak wykonać skrypt powłoki podczas uruchamiania systemu systemd Linux. Mogą istnieć różne powody, dla których możesz chcieć wykonać skrypt powłoki podczas uruchamiania Linuksa jak na przykład uruchomić określoną usługę, sprawdzić miejsce na dysku, stworzyć kopię zapasową itp.
Poniższy przykład będzie służył jako podstawowy szablon do późniejszej modyfikacji do twoich specyficznych potrzeb. W poniższym przykładzie sprawdzimy przestrzeń dyskową katalogu /home/ podczas startu systemu i zapiszemy raport do katalogu /root/.

Systemd service unit

Po pierwsze, musimy stworzyć skrypt startowy systemd np.disk-space-check.service i umieścić go w katalogu /etc/systemd/system/. Przykład takiego skryptu startowego systemd możesz znaleźć poniżej:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • After: Instruuje systemd, kiedy skrypt powinien zostać uruchomiony. W naszym przypadku skrypt zostanie uruchomiony po uruchomieniu bazy danych mysql. Innym przykładem może być network.target etc.
  • ExecStart: W tym polu podajemy pełną ścieżkę, którą ma być wykonany rzeczywisty skrypt
  • WantedBy: Into what boot target the systemd unit should be installed

Powyższe to absolutne minimum jakie powinna zawierać nasza jednostka usługi systemd, aby wykonać nasz skrypt w czasie bootowania. Aby uzyskać więcej informacji i opcji do użycia zobacz systemd.service stronę podręcznika:

$ man systemd.service

Skrypt powłoki startowej

Następnie tworzymy nasz niestandardowy skrypt powłoki, który będzie wykonywany podczas startu systemu systemd. Lokalizacja i nazwa skryptu jest już zdefiniowana przez jednostkę usługi jako /usr/local/bin/disk-space-check.sh. Zawartość skryptu może być prosta jak:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Poszukiwany Analityk Systemów Linuksowych !
Instytut Geofizyczny UAF, poszukuje doświadczonego Analityka Systemów Linuksowych, który dołączy do zespołu analityków i inżynierów zajmujących się cyberinfrastrukturą badawczą. LOKALIZACJA: Fairbanks, Alaska, USA
APPLY NOW

Konfiguracja i instalacja

Zanim zrestartujemy nasz system, musimy uczynić nasz skrypt wykonywalnym:

# chmod 744 /usr/local/bin/disk-space-check.sh

Następnie zainstaluj jednostkę usługi systemd i włącz ją, aby była wykonywana w czasie uruchamiania systemu:

# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Jeśli chcesz przetestować swój skrypt przed restartem uruchom go:

# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

Wszystko gotowe. Po ponownym uruchomieniu systemu Linux, powyższa jednostka systemd wywoła skrypt powłoki, który zostanie wykonany podczas startu systemu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.