Mam problem z zadaniami crona. Poprzednio ten skrypt działał dobrze na serwerze Mac OS X 10.6, ale po zainicjowaniu go na Lion (klient) skrypt przestał działać.
Zasadniczo to .bat
plik wywołuje a jar
plik (który wywołuje pętlę mysqldump
polecenia) do tworzenia kopii zapasowych kilku baz danych na kilku serwerach i działa doskonale, jeśli jest uruchamiany przez powłokę.
cd /Users/nameoftheuser/Desktop/backupper
/usr/bin/java -cp .:Backupper.jar:lib/mail.jar backupper.Main "/Users/nameoftheuser/Desktop/backupper/listasiti.txt" "/Users/nameofthe/Desktop/backupper/config.properties
Ale jeśli cron uruchomi to samo .bat
plik, wygenerowane kopie zapasowe bazy danych to 0 bajtów.
Wpis crona to:
0 0 sh /Users/path/to/file.bat
Uważam, że problem polega na tym, że cron nie działa jak root
. Albo co jeszcze?
cd /Users/nameoftheuser/Desktop/backupper /usr/bin/java -cp .:Backupper.jar:lib/mail.jar backupper.Main "/Users/nameoftheuser/Desktop/backupper/listasiti.txt" "/Users/nameofthe/Desktop/backupper/config.properties"
- Edytowałem crontab za pomocą nano, zalogowanego w terminalu z tym samym użytkownikiem, w którym przechowywany jest skrypt, używając kart zamiast spacji. Skrypt uruchamiany przez powłokę jest bez sh, ale nawet jeśli napisałem to w cronie, nie działa. Zapomniałem powiedzieć, że zainstalowałem środowisko Java, ponieważ w Lionie nie ma zainstalowanego systemu operacyjnego.
crontab -e
?
Backupper.jar
? Powinieneś go prawdopodobnie zdebugować i zobaczyć, dlaczego pliki mają tylko 0 bajtów.
root
crontab, zobacz: superuser.com/questions/344398/… - także: jak początkowo edytujesz crontab? Czy wywołujesz skrypt za pomocą powłokish …
zbyt?