Edytowałem kartę root cron, aby okresowo uruchamiać skrypt znajdujący się w folderze określonego użytkownika za pomocą tego polecenia:
sudo crontab -e
Gdy cron uruchamia skrypt, jest to wynik:
sh: 1: /home/user/Location/Of/Script: Permission denied
Myślałem, że root cron ma pozwolenie na zrobienie czegokolwiek. Nie mam problemu, gdy ręcznie uruchamiam ten skrypt jako root.
Przeczytałem w dokumentacji, że dalsze informacje o błędach można znaleźć tutaj:
sudo cat /var/log/syslog
Oto, co znalazłem:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Myślę jednak, że prawdopodobnie nie ma to związku z odmową wydania pozwolenia.
Więc co naprawdę muszę zrobić?
ubuntu
permissions
cron
Lonniebiz
źródło
źródło
/home/user/Location/Of/Script
? Npla -l /home/user/Location/Of/Script
. Nawiasem mówiąc, potrzebujesz MTA zainstalowanego do normalnego użytku wewnętrznego, nawet jeśli nie wysyłasz / nie odbierasz wiadomości e-mail z zewnątrz. Dziwię się, że twój system nie ma już zainstalowanego.Odpowiedzi:
Myślę, że twój skrypt nie jest wykonywalny. Aby to zrobić, użyj następującego polecenia:
Lub, jeśli nie jesteś właścicielem tego skryptu:
źródło
./Scipt
lub/home/user/Location/Of/Script
nie jest to w porządku. Zasadniczo każdy skrypt musi być wykonywalny. Zobacz Jak uruchomić skrypt powłoki w systemie Linux .