Hogyan lehet automatikusan végrehajtani a shell szkriptet a rendszerindításkor a systemd Linuxon

A következő konfiguráció egy alapvető példát mutat be arra, hogyan lehet végrehajtani a shell szkriptet a rendszerindításkor a systemd Linuxon. Különböző okok miatt lehet, hogy a Linux indításakor shell szkriptet akarunk végrehajtani, például egy adott egyéni szolgáltatás elindításához, a lemezterület ellenőrzéséhez, biztonsági mentés készítéséhez stb.
A következő példa az alábbiakban egy alapvető sablonként szolgál, amelyet később módosíthatunk az egyedi igényeinknek megfelelően. Az alábbi példában egy /home/ könyvtár lemezterületét fogjuk ellenőrizni a rendszerindítás során, és egy jelentést írunk a /root/ könyvtárba.

Systemd service unit

Először is létre kell hoznunk egy systemd indítószkriptet pl. disk-space-check.serviceés a /etc/systemd/system/ könyvtárba kell helyeznünk. Az alábbiakban egy ilyen systemd indítószkriptre találunk példát:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • After: Utasítja a systemd-t, hogy mikor fusson a szkript. Esetünkben a szkript a mysql adatbázis elindítása után fog futni. Más példa lehet network.target stb.
  • ExecStart:
  • WantedBy: Milyen indítási célpontba kell telepíteni a systemd egységet

A fenti egy abszolút minimum, amit a systemd szolgáltatási egységünknek tartalmaznia kell ahhoz, hogy a szkriptünket indításkor végre tudjuk hajtani. További információkért és a használandó opciókért lásd a systemd.service kézikönyv oldalát:

$ man systemd.service

Startup shell script

Ezután létrehozzuk a systemd indításakor végrehajtandó egyéni shell scriptünket. A hely és a szkript neve már meg van határozva a szolgáltatásegység által /usr/local/bin/disk-space-check.sh. A szkript tartalma egyszerű lehet a következő:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Linux rendszerelemzőt keres !
A UAF Geofizikai Intézet, tapasztalt Linux rendszerelemzőt keres a kutatói kiberinfrastruktúra elemzői és mérnökei csapatába. HELYZET: Fairbanks, Alaszka, USA
JELENTKEZÉS

Konfigurálás és telepítés

Mielőtt újraindítanánk a rendszerünket, futtathatóvá kell tennünk a szkriptünket:

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

Ezután telepítsük a systemd szolgáltatásegységet, és engedélyezzük, hogy a rendszerindításkor végrehajtódjon:

# 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.

Ha újraindítás előtt szeretnénk tesztelni a szkriptünket, futtassuk:

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

Minden készen áll. A Linux rendszer újraindítása után a fenti systemd egység meg fogja hívni a shell szkriptet, hogy az a rendszerindításkor végrehajtódjon.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.