Czy mam zapisać plik crontab w / tmp?


11

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 -ei 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 /tmpsystemie 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?


Czy mogę zapisać plik crontab pod $ HOME? Dlaczego potrzebuję dowiązania symbolicznego?
— Tim

Odpowiedzi:


15

crontab -eotwiera 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. Gdyby crontab -epo 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.


gdzie ostatecznie jest przechowywany mój plik crontab? Jeśli wyloguję się z serwera, co stanie się z moim plikiem crontab? (Nie jestem administratorem i nie mam uprawnień roota do serwera)
— Tim

1
twój prawdziwy crontab mieszka gdzieś w /var/spool(zwykle), ale nigdy nie powinieneś dotykać twojego prawdziwego crontab i nigdy nie powinieneś tego robić - crontab -ezamiast tego użyj . Prawdopodobnie nie masz odpowiedniego poziomu dostępu do edycji surowego pliku crontab.
— jayhendren

jeśli się wylogujesz, nic nie stanie się z twoim crontabem. nie mieszka w / tmp.
— jayhendren

(1) Czy plik crontab jest przeznaczony dla pojedynczego użytkownika czy dla wszystkich użytkowników? (2) Jak mogę sprawdzić, czy moja edycja pliku crontab działa?
— Tim

crontabs są na użytkownika. aby sprawdzić, czy działa cronjob, możesz sprawdzić dzienniki cron. zazwyczaj w /var/log/cron.log, ale mogą to być również inne lokalizacje.
— jayhendren

5

/tmpjest miejscem, w którym zapisywany jest tymczasowy plik crontab. Po zapisaniu i wyjściu, crontabdokonam 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.


1

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:

% pico ~/.crontab; crontab ~/.crontab

Jeśli lubisz aliasy, możesz zamiast tego uruchomić jeden.


1
Czy muszę coś zrobić, aby plik crontab mojego domu zastępował pliki crontab w innym miejscu?
— Tim

Po prostu uruchom „crontab ~ / .crontab”, a zastosujesz go w / var / spool / cron / crontabs. Użyj pico, emacs lub vi, aby edytować ~ / .crontab przed wprowadzeniem jakichkolwiek zmian.
— JonathanS

To tak naprawdę nie odpowiada na pytanie.
— nikt

@AndrewMedico: Główne pytanie brzmiało: „Gdzie mam przechowywać plik crontab? Czy mogę zapisać plik crontab pod $ HOME lub w innym miejscu?” A może odwołujesz się do pytania Tima w komentarzu tutaj?
— JonathanS
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.