Articles
Root Cron Won ' t Kjør skript (tillatelse nektet)
On februar 15, 2021 by adminJeg har redigert root cron-fanen til periodisk utfør et skript som ligger i en bestemt brukers mappe ved hjelp av denne kommandoen:
sudo crontab -e
Når cron kjører skriptet, er dette utdata:
sh: 1: /home/user/Location/Of/Script: Permission denied
Jeg trodde at rotkronen hadde tillatelse til å gjøre hva som helst. Jeg har ikke noe problem når jeg manuelt kjører dette skriptet som root.
Jeg har lest i dokumentasjonen at ytterligere feilinformasjon kan bli funnet her:
sudo cat /var/log/syslog
Her er det jeg fant:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Imidlertid tror dette sannsynligvis ikke er relatert til problemet med tillatelse nektet.
Så hva trenger jeg egentlig å gjøre?
Kommentarer
Svar
Jeg tror at skriptet ditt ikke kan kjøres. Så bruk følgende kommando for å lage det:
chmod +x /home/user/Location/Of/Script
Eller hvis du ikke er eieren av skriptet:
sudo chmod +x /home/user/Location/Of/Script
Kommentarer
- Så for cron å kjøre skriptet må det være kjørbart, men manuelt som root ikke ' trenger du ikke dette flagget, ikke sant?
- Avhenger av hvordan du kjører skriptet manuelt. Hvis du kjører skriptet ved å bruke
./Scipt
eller/home/user/Location/Of/Script
, er det ' ikke ok. Vanligvis må ethvert skript være kjørbart. Se Slik kjører du et skallskript i Linux . - Det er fornuftig, men jeg har virkelig kjørt dette skriptet manuelt ./script uten å møte noen tillatelsesproblemer før jeg prøvde å cron det. Takk for hjelpen.
/home/user/Location/Of/Script
? F.eks.la -l /home/user/Location/Of/Script
. For øvrig trenger du en MTA installert for normal intern bruk, selv om du ikke sender / mottar e-post eksternt. Jeg ' er overrasket over at systemet ikke har det allerede installert.