Kaikessa yksinkertaisuudessaan ongelma on seuraava:
Minulla on shelliskripti joka tekee backuppeja kerran päivässä. Shelliskripti toimii täysin oikein kun ajan sen komentoriviltä.
Skriptin mysql-osuus on seuraavanlainen:
mysqldump -u matti --password=s4l4s4n4 --default-character-set=latin1
tietokanta > /root/back/mysql_backup_daily
Kun ajan skriptin crontabissa seuraavalla komentorivillä:
30 3 * * * root /root/back/backup.sh
Ei tuo ylläoleva mysqldump toimi mutta muut backupit menevät normaalisti. Käyttöoikeudet ovat oikein takuuvarmasti.
Mikä siis mättää?
Minulla on shelliskripti joka tekee backuppeja kerran päivässä. Shelliskripti toimii täysin oikein kun ajan sen komentoriviltä.
Skriptin mysql-osuus on seuraavanlainen:
mysqldump -u matti --password=s4l4s4n4 --default-character-set=latin1
tietokanta > /root/back/mysql_backup_daily
Kun ajan skriptin crontabissa seuraavalla komentorivillä:
30 3 * * * root /root/back/backup.sh
Ei tuo ylläoleva mysqldump toimi mutta muut backupit menevät normaalisti. Käyttöoikeudet ovat oikein takuuvarmasti.
Mikä siis mättää?
Vastaukset 2
Vanhimmat
skripti toimii shellissä, mutta ei toimi cronin kautta/rc.localista johtuu varmaan 98% siitä, että polut eivät ole absoluuttisia.
Eli koitas muuttaa skriptiä niin, että myöskin mysqldumpin edessä on koko polku sinne missä se komento sijaitsee. /usr/sbin/mysqldump tai missä se nyt onkin sulla.
Katso käyttiksen logit, että löytyykö niistä jotain virhettä tuolle suoritukselle.
poistaa toi root tosta ajettavan ohjelman edestä eli muotoon
30 3 * * * /root/back/backup.sh
Tollai mulla ainakin Slackwaressa toimii.