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:
- a) „cron“ demonas turi veikti (taip yra įprastomis aplinkybėmis) ir
- 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ų!