Puncte:0

așteptați ca scriptul să nu funcționeze în cron, dar rulează cu succes în terminal

drapel us

Iată scriptul meu aștept numit script.exp care rulează cu succes atunci când este executat de la terminal. Dar nu rulează atunci când se programează prin cronjob.

#!/usr/bin/expect -f
setați timeout -1
spawn ./sql_backup.sh
match_max 100000
expect -exact "Introduceți parola: "
trimite -- "pass123\r"
așteaptă eof

scriptul meu bash numit sql_backup.sh este:

#!/bin/bash
mysqldump -u root -p --all-databases > /home/user1/mysql/mysql-bkp.sql

și cronjob-ul meu este:

* * * * * /usr/bin/expect -f /home/user1/script.exp

Mulțumiri

drapel cn
Duplicat de https://stackoverflow.com/q/69793254/7552 ? Vă rugăm să nu puneți aceeași întrebare în locuri diferite.
Puncte:1
drapel it

Locuri de muncă rulează cron nu sunt rulate în același mediu de rulare pe care îl aveți pe desktop. Nici unul dintre voi CALE modificări sau alte setări ale variabilelor de mediu din ~/.bashrc sunt propagate automat către dvs cron loc de munca. De exemplu, nu există $DISPLAY, deci programele GUI au nevoie de un tratament special (citiți man xhost).

Se pot seta variabile de mediu pentru toate cron locuri de muncă în crontab fişier Citit om 5 crontab.

Uită-te la rezultatele echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias în fiecare dintre mediile dumneavoastră.

De când comanda parte a crontab linia este, implicit, interpretată de /bin/sh, care are o sintaxă mai simplă decât /bin/bash, recomand să aveți comanda fii un apel către a bash script (executabil, montat, începe cu #!/bin/bash) care configurează mediul, apoi apelează programul dorit.

drapel cn
De asemenea, rețineți că CWD pentru cron este `/`, deci `./script.sh` este greșit.

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.