Kaip automatiškai vykdyti komandas/scenarijus perkraunant ar paleidžiant


Mane visada žavi užkulisiuose vykstantys dalykai, kai paleidžiu „Linux“ sistemą ir prisijungiu. Paspausdami ant pliko metalo maitinimo mygtuką arba paleisdami virtualią mašiną, įjungiate įvykių seriją, kuri veda prie visiškai veikiančios sistemos - kartais per mažiau nei minutę. Tas pats pasakytina ir tada, kai atsijungiate ir (arba) išjungiate sistemą.

Tai daro įdomiau ir įdomiau tai, kad galite leisti operacinei sistemai atlikti tam tikrus veiksmus, kai ji paleidžiama, prisijungdami ar atsijungdami.

Šiame distro-agnostiniame straipsnyje aptarsime tradicinius metodus, kaip pasiekti šiuos tikslus sistemoje „Linux“.

Pastaba: Laikysime, kad „Bash“ bus naudojamas kaip pagrindinis korpusas prisijungiant ir atsijungiant. Jei atsitiktinai naudojate kitą metodą, kai kurie iš šių metodų gali ir neveikti. Jei abejojate, žiūrėkite savo apvalkalo dokumentaciją.

„Linux“ scenarijų vykdymas perkraunant arba paleidžiant

Yra du tradiciniai metodai komandai vykdyti arba paleisti scenarijus paleidimo metu:

Be įprasto formato (minutė/valanda/mėnesio diena/mėnuo/savaitės diena), kuris yra plačiai naudojamas tvarkaraščiui nurodyti, „cron“ planuoklis taip pat leidžia naudoti @reboot . Ši direktyva, po kurios eina absoliutus kelias į scenarijų, paskatins ją paleisti, kai mašina paleidžiama.

Tačiau yra du šio požiūrio įspėjimai:

  1. a) „cron“ demonas turi veikti (taip yra įprastomis aplinkybėmis) ir
  2. b) scenarijuje arba „crontab“ faile turi būti aplinkos kintamieji (jei tokių yra), kurie bus reikalingi (išsamesnės informacijos ieškokite šiame „StackOverflow“ siūle).

Šis metodas galioja net paskirstant sistemomis. Kad šis metodas veiktų, turite suteikti leidimus /etc/rc.d/rc.local taip:

# chmod +x /etc/rc.d/rc.local

ir pridėkite scenarijų failo apačioje.

Šiame paveikslėlyje parodyta, kaip paleisti du scenarijų pavyzdžius ( /home/gacanepa/script1.sh ir /home/gacanepa/script2.sh ) naudojant „cron“ užduotį ir rc. atitinkamai vietos ir jų atitinkamus rezultatus.

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
#!/bin/bash
SITE="linux-console.net"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

Atminkite, kad abiem scenarijams turi būti suteikta teisė vykdyti anksčiau:

$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh

„Linux“ scenarijų vykdymas prisijungiant ir atsijungus

Norėdami vykdyti scenarijų prisijungdami arba atsijungdami, naudokite atitinkamai ~ .bash_profile ir ~ .bash_logout . Labiausiai tikėtina, kad pastarąjį failą turėsite sukurti rankiniu būdu. Tiesiog nuleiskite eilutę su scenarijumi kiekvieno failo apačioje taip pat, kaip ir anksčiau, ir būsite pasirengę eiti.

Šiame straipsnyje mes paaiškinome, kaip paleisti scenarijų perkraunant, prisijungiant ir atsijungiant. Jei galite sugalvoti kitus metodus, kuriuos galėjome įtraukti čia, nedvejodami naudokitės žemiau esančia komentarų forma, kad jiems nurodytumėte. Lauksime jūsų!