Puncte:9

Rulați mai multe scripturi într-un folder cu cron

drapel us
bNi

Lucrez cu multe scripturi. Așa că adaug/elimină scripturi cu „crontab -e" de atâtea ori. Am încercat să fac o structură "Disponibil/Activat" pentru acestea.

Exemplu:
Acesta este arborele structurii mele:

# toate scripturile
scripts/available/1.sh
scripturi/disponibil/2.sh
scripturi/disponibil/3.sh

# scripturi activate 
scripts/enabled/1.sh -> scripts/available/1.sh
scripts/enabled/2.sh -> scripts/available/2.sh

Apoi adaug această linie la „crontab -e":

* * * * * /home/user/scripts/enabled/* &> /dev/null

Aceasta este rezultatul sudo systemctl status cron.service :

     CGroup: /system.slice/cron.service
             ââ17763 /bin/bash /home/user/scripts/enabled/1.sh /home/user/scripts/enabled/2.sh

In cele din urma:
1.sh funcționează în fiecare minut, dar 2.sh nu funcționează.

Vreau să rulez scripturi numai din cron. Ce pot face pentru asta, dacă nu vreau să fac un script pentru „rulați scripturi într-un director” cu un alt script,?

De asemenea, cunoașteți vreun grup Telegram pentru „Administratorii de sistem GNU/Linux” activi?

Mulțumesc.

Someone avatar
drapel my
Vă rugăm să editați întrebarea pentru a o limita la o problemă specifică, cu suficiente detalii pentru a identifica un răspuns adecvat.
bNi avatar
drapel us
bNi
E bine acum? @Algins
Someone avatar
drapel my
Puteți aproba [editarea mea.](https://askubuntu.com/suggested-edits/174342)
Puncte:14
drapel mx

Alternativ, puteți utiliza piese de rulare :

* * * * * /usr/bin/run-parts --regex='.+' /home/user/scripts/enabled

Parametru --regex='.+' permite orice nume de fișiere. Detalii: man run-parts.

bNi avatar
drapel us
bNi
Nu a funcționat pentru mine.
pasman pasmański avatar
drapel mx
run-parts în mod implicit nu acceptă un punct în numele fișierului. Redenumiți `1.sh` în `1` și așa mai departe.
bNi avatar
drapel us
bNi
Mulțumesc, a funcționat!
Puncte:5
drapel ar

Încerca

pentru script în /home/user/scripts/enabled/*; face $script &>/dev/null; Terminat
Puncte:4
drapel cn

Când specificați

/home/user/scripts/enabled/*

cron vede

/home/user/scripts/enabled/script1.sh /home/user/scripts/enabled/script2.sh...

Astfel, executați script1.sh cu drept argumente căile celorlalte scripturi din acel director. Scriptul dvs.1 nu citește argumente: deci rulează și funcționează bine.

În schimb, au cron rulați o expresie script e pentru a „nu sunt sigur dacă cron funcționează cu metacaractere așa cum credeți”, care, la rândul său, rulează toate scripturile din activat director. Poți face asta cu a pentru ... do buclă.

vanadium avatar
drapel cn
@terdon corect, desigur. Am schimbat asta

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.