@Domker
No i tym razem nagrywanie ruszyło, ale nie zostało ubite o wyznaczonej porze. Masakra jakaś. ;-))))
Dzises,
PID przyjął złą wartość. (wartość od uruchamianego “date”). Nie może być pierwszy człon łączony poprzez AND (&&).
Zmień na:
NAZWAPLIKU=`date +\%d-\%m-\%Y_\%H-\%M`;
(dodany średnik)
i wykasuj “&&” przed wget.
Wywal też “2>&1” bo jest niepotrzebne. Zwróć uwagę, czy jest po jednej spacji.
Na 100% działa, bo sprawdzałem.
Wkońcu
Jak widać jest spora różnica między poleceniami inline odpalanymi w konsoli, a w crontabie. Sam jako wieloletni użytkownik systemu Linux byłem trochę zaskoczony tymi rozbieżnościami.
A więc problem SOLVED ?
Tak, na tę chwilę problem rozwiązany. Chyba, że jeszcze coś wyniknie w trakcie użytkowania, ale nie wydaje mi się, bo ewentualne modyfikacje będą jedynie dotyczyć zmiany pór nagrywania poszczególnych audycji.
Przy okazji dopytam, bo z Linuxem mam bardzo rzadko do czynienia, a jeśli już, to głównie przy pomocy bardzo uproszczonego GUI. Te rozbieżności, o których piszesz, wynikają z różnic w stosowanych dystrybucjach Linuxa?
Nie, rozbieżności to głównie z interpretacji składni się biorą.
Crontab jak widać nieco inaczej niektóre rzeczy interpretuje.
Pewne elementy jak np. % widzę, że są niedozwolone i trzeba negować je znakiem \
, gdzie w konsoli normalnie to przechodzi bez problemu.
Bardzo mnie zdziwiło z tym PID i znakiem AND (&&), że crontab przyporządkował PID z polecenia “date”, a nie ostatniego poprzedzającego.
Testowałem w konsoli, więc uznałem, że będzie działać, a jednak niektóre elementy składni crontabowi nie pasują.
Pewnie różnica dotyczy tylko uruchamiania poleceń inline, a nie tych ze skryptu w plikach SH.
W dystrybucjach też są jakieś różnice skoro np. mój exploit shella działa na większości distro, a w 2 distrach nie chciał działać. Mimo, że nie powinno teoretycznie jego działanie się różnić, bo luka jest dosyć charakterystyczna dla ogólnie shella.
https://www.youtube.com/watch?v=rKzl1ZkqXHs
@Domker
Pozwolę sobie na jeszcze jedno amatorskie pytanie, ponieważ nie znam dobrze zasad składni. W którym miejscu kodu:
NAZWAPLIKU=`date +\%d-\%m-\%Y_\%H-\%M`;
dodać prefiks np. RW_
, który dodawany będzie na samym początku nazwy każdego pliku, tuż przed dniem miesiąca?
NAZWAPLIKU=`date +RW_\%d-\%m-\%Y_\%H-\%M`;
Może być np. tak?
Od + zaczyna się składnia polecenia date, tak daj:
NAZWAPLIKU="RW_$(date +\%d-\%m-\%Y_\%H-\%M)"
Wynik:
echo $NAZWAPLIKU
RW_10-09-2017_19-49
PS
Znaki % nie muszą być zakomentowane za pomocą lewych ukośników przed nimi.
Nie muszą być, ale jeżeli w crontab się używa to inaczej nie działa.
A są te ukośniki? Domker pewnie ma rację, ja nie pamiętam.
Najlepiej jest umieści wszystko poza wpisem crontaba - w osobnym skrypcie w /usr/local/bin/nazwa. W cronie podajesz tylko porę i ścieżkę do skryptu - jeśli ma argumenty to z argumentami.
NAZWAPLIKU=`date +RW_\%d-\%m-\%Y_\%H-\%M`;
Zadziała sprawdzałem.
Drugi sposób to jak masz ścieżkę, gdzie masz $NAZWAPLIKU to wystarczy dostawić RW_$NAZWAPLIKU