Chcę pobierać treść ze skryptu PHP na moim serwerze dwa razy dziennie, zmieniając zmienną zapytania, lang
aby ustawić żądany język, i zapisuję tę zawartość w dwóch plikach specyficznych dla tego języka. Oto mój crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
Problem polega na tym, że wykonywana jest tylko pierwsza linia komend wget (a ściślej: jedynym zapisywanym plikiem jest /path/to/file-sv.sql
). Jeśli zmienię drugi i trzeci wiersz, /path/to/file-en.sql
zamiast tego zostanie napisane. Pierwszy wiersz zawsze działa zgodnie z oczekiwaniami, bez względu na to, gdzie się znajduje.
Potem spróbowałem użyć lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
bezskutecznie; wciąż tylko pierwsza linia rysia została wykonana pomyślnie. Nawet mieszanie wgeta i rysia tego nie zmieniło!
Trochę desperaci! Czy coś brakuje? Istnieją tysiące artykułów na temat crontab (w połączeniu z) wget lub lynx, ale wszystkie wydają się obejmować podstawowe ustawienia i składnię. Czy ktoś ma pojęcie o tym, co robię źle?
Dzięki,
Alexander
Odpowiedzi:
Spróbuj dodać znak nowej linii na końcu swojej tabeli.
źródło
Coś jest nie tak z tekstem. Edytuj crontab w vimie, a następnie pokaż niewidzialne postacie.
Powinieneś być w stanie to zobaczyć, a następnie poprawić.
źródło
# crontab -e
EDITOR=vim crontab -e
$
na końcu każdej linii?Spróbuj dodać przekierowanie, aby debugować plik crontab (lub przeczytaj pocztę główną):
Uruchom także „wget -O /path/to/file-en.sql„ http://mydomain.com/path/?lang=en ”z konsoli.
Użyj także „crontab -e” do sprawdzania poprawności nowego crontab.
Spróbuj także usunąć niedziałający wiersz i wpisz go ponownie z klawiatury.
Wykonaj kopię zapasową corntab i uruchom polecenie:
źródło
/tmp/crontab_ouptput 2> /tmp/crontab_error
działa tylko dla pierwszego wiersza. Uruchomienie polecenia z konsoli działa dobrze. Przepisz cały plik gołymi rękami, ale nic się nie zmieniło.Właśnie spędziłem trochę czasu na wypróbowaniu powyższych odpowiedzi (dodawanie nowych linii, usuwanie nowych linii itp.) Na systemie z systemem cronie . Wreszcie stwierdzono, że w cronie 1.5.3 występuje błąd, który wykonuje tylko pierwsze zadanie cron dla każdego użytkownika . Naprawiono to w wersji 1.5.4
https://github.com/cronie-crond/cronie/issues/30
Mam nadzieję, że to pozwoli komuś zaoszczędzić trochę czasu ...
źródło