UWAGA : Przeczytałem wszystkie podobne pytania dotyczące. cron, ścieżki, zmienne env i tak dalej, ale nie znalazłem żadnej, która oferowałaby rozwiązania mojego konkretnego problemu.
Mam skrypt, który wykonuje zrzuty MySQL, a następnie usuwa stare:
/usr/bin/find "/home/bkp/dbdump" -name "*.gz" -mtime +5 -delete
( powyższe polecenie zostało zmodyfikowane z mojego oryginalnego polecenia dzięki sugestiom z komentarzy )
Jednak pliki nigdy nie są usuwane, gdy cron uruchamia ten skrypt. Użytkownik cron jest rootem.
Debugowanie notatek
Jeśli ręcznie uruchomię skrypt, w którym pojawia się polecenie, usuwa je zgodnie z oczekiwaniami.
Jeśli uruchomię powyższe polecenie find samodzielnie z wiersza poleceń jako root, usuwa je zgodnie z oczekiwaniami (i przy pomocy -print zwraca listę plików starszych niż 5 dni zgodnie z oczekiwaniami)
Dodałem także wyraźną instrukcję path do crontab root'a, ale
to nic nie zmienia.Cron nie wysyła żadnego błędu, a jeśli potokuję operację znajdowania do pliku dziennika,
który pojawia się pusty lub wcale nie jest tworzony.Używam serwera Ubuntu 14.04.03 LTS.
/usr/bin/find /home/bkp/dbdump/*.gz -mtime +5
cronpolecenia są uruchamiane przez powłokę, a powłoka rozwija symbole wieloznaczne.
cronpowinien wysłać wiadomość e-mail z komunikatami wyjściowymi i błędami. Czy otrzymujesz taki e-mail z tej pracy?