Przesyłam ssh do serwera i chcę dodać kilka codziennych zadań (szczególnie w celu odnowienia biletów Kerberos, nawet gdy się wyloguję i nadal chcę, aby moje programy na ekranie lub tmux nadal działały) do crona. Więc uruchamiam crontab -e
i dodaję następujące,
00 00 * * * kinit -R
00 12 * * * kinit -R
Kiedy go zapisuję, redaktor pyta mnie:
File Name to Write: /tmp/crontab.HMpG7V
Czy nie jest tak, że pliki w /tmp
systemie mogą zostać usunięte przez system operacyjny? Zwłaszcza po wylogowaniu z serwera?
Gdzie mam przechowywać plik crontab? Czy mogę zapisać plik crontab pod $ HOME lub w innym miejscu?
Odpowiedzi:
crontab -e
otwiera plik w / tmp zamiast rzeczywistego pliku crontab, aby mógł sprawdzić, czy w nowym pliku crontab nie ma błędów, i zapobiec nadpisaniu pliku crontab tymi błędami. Jeśli nie ma żadnych błędów, twój aktualny plik crontab zostanie zaktualizowany. Gdybycrontab -e
po prostu napisał prosto do twojego pliku crontab, ryzykowałbyś, że wszystkie cronjoby nie uruchomią się z powodu błędu składniowego w nowym pliku crontab.sudoedit
,visudo
,vipw
, Itd. Działają na tej samej zasadzie.Nie martw się, twój prawdziwy crontab żyje w nieulotnej lokalizacji na dysku.
źródło
/var/spool
(zwykle), ale nigdy nie powinieneś dotykać twojego prawdziwego crontab i nigdy nie powinieneś tego robić -crontab -e
zamiast tego użyj . Prawdopodobnie nie masz odpowiedniego poziomu dostępu do edycji surowego pliku crontab./tmp
jest miejscem, w którym zapisywany jest tymczasowy plik crontab. Po zapisaniu i wyjściu,crontab
dokonam zmian w innym, bardziej odpowiednim katalogu w twoim systemie (zwykle w/var/spool/cron
, jeśli dobrze pamiętam). Więc nie martw się, system operacyjny może usunąć twoje / tmp, ale nigdy nie usunie twoich crontabs.źródło
Pliki Crontab znajdują się w / var / spool / cron / crontabs / pod własną nazwą użytkownika lub identyfikatorem użytkownika. Ponieważ mogą wystąpić sytuacje, w których zlokalizowany tutaj plik crontab nie jest już połączony z kontem logowania, zaleca się zapisanie kopii w katalogu domowym, powiedzmy /home/userid/.crontab, aby można ją było łatwo przywrócić w razie potrzeby do. Pozwala to również na umieszczenie go pod kontrolą wersji, jeśli chcesz.
Jeśli twój katalog domowy zostanie przeniesiony do innego systemu, często crontab z katalogu bufora nie towarzyszy mu, chyba że administrator systemu weźmie to pod uwagę. Kopia zapasowa / var / spool nie jest zawsze tworzona lub przywracana, gdy system wymaga ponownego uruchomienia.
Dlatego ponownie zaleca się przechowywanie kopii pliku crontab w katalogu domowym.
Użyj swojego ulubionego edytora (pico, vi, emacs itp.), Aby edytować ~ / .crontab, a następnie użyj crontab, aby zastosować go do / var / spool / crontabs. Lubię to:
Jeśli lubisz aliasy, możesz zamiast tego uruchomić jeden.
źródło