Spuštění scriptu po startu

Potřeboval jsem spustit po startu serveru script pro připojení USB disku. USB disk je formátován NTFS a slouží jako záložní medium pro zálohovací program Bareos.

Problémem bylo to, že server je virtualizován a při startu se USB disk nepřipojí vždy pod stejným označením. Proto bylo nutné použít script, kde se zjistí označení disku a takto zjištěný disk se připojí do adresáře, kde si Bareos ukládá své zálohy.
Obsah scriptu:

#!/bin/sh
disk=$(fdisk -l | grep 'NTFS' | grep -o '^/dev/sd[b-z][0-9]')
mount -o uid=113,gid=121,umask=027 -t ntfs-3g $disk /var/lib/bareos

Jako dobrá volba se jevilo spouštět tento script až po spuštění všech systémových scriptů, takže jsem si příkazem

ls -l /etc/rc2.d/

vypsal všechny spouštěné scripty. Svůj script jsem umístil do /etc/init.d/, nastavil mu práva na spouštění

chmod +x muj_script.sh

a zvolil jsem poslední pořadí spouštění. Použil jsem příkaz

update-rc.d muj_skript.sh defaults 20

Tento příkaz mi vyhodil chybu

'missing LSB tags and overrides'

a při zkoumání této chyby jsem zjistil, že mi ve scriptu chybí část mezi
BEGIN INIT INFO a END INIT INFO

### BEGIN INIT INFO
# Provides:          psa-firewall
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       User description here
### END INIT INFO

Proto jsem do scriptu doplnil tuto část a výsledný text scriptu vypadá takto


#!/bin/sh
### BEGIN INIT INFO
# Provides:          mount usb disk
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Pripojeni USB disku pri startu
# Description:       Pripojeni USB disku pro Bareos
### END INIT INFO
disk=$(fdisk -l | grep 'NTFS' | grep -o '^/dev/sd[b-z][0-9]')
mount -o uid=113,gid=121,umask=027 -t ntfs-3g $disk /var/lib/bareos
exit 0

Takto napsaný script se regulérně spustí po startu systému a provede to, k čemu byl určen

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.