Jak edytować wiele zadań cronel użytkownika na raz?

1

używam cat /var/spool/cron/* aby wyświetlić wszystkie zadania Cron utworzone przez wszystkich użytkowników cpanel.

Czy można edytować jego wyjście tak, jak edytować za pomocą nano i nacisnąć Zapisz?

IMB
źródło

Odpowiedzi:

0

Jeśli próbujesz wykonać wykrywanie kolizji i zapobieganie (jak wskazano w kolejne pytanie, które zadałeś ), wtedy prostym sposobem osiągnięcia tego, o co prosisz, byłoby

cat /var/spool/cron/* >/tmp/cat.out; $EDITOR /tmp/cat.out

które łączą wszystkie crontaby wielu użytkowników w jeden plik, zapisz i edytuj. Ale nie widzę w tym większego pożytku. O wiele bardziej użyteczne byłoby

ls /var/spool/cron/* | xargs -i $EDITOR {}

który edytowałby kolejno crontab każdego użytkownika, zapisz, a następnie otwórz następny. Obowiązkiem użytkownika (jako roota) byłoby zauważenie i poprawienie konfliktów między każdym plikiem.

Kolejnym udoskonaleniem byłoby stworzenie wersji pierwszej z adnotacjami w celu zidentyfikowania problemów, a następnie cofnięcie się i edycja poszczególnych crontabów użytkownika indywidualnie w celu poprawek.

for I in /var/spool/cron/*; \
do awk '!/^#/&&!/^[^[:blank:]]*=/{printf "%s:\t%s\n", F, $0}' F=$I $I; \
done |sort -k2 | less

wyświetli całą zawartość wszystkich plików crontab, z wyjątkiem komentarzy i przypisań zmiennych środowiskowych, z prefiksem każdej konkretnej nazwy pliku crontab i posortowanej według zawartości crontab. Miejmy nadzieję, że wszystkie zestawione liniowo linie zostaną umieszczone we wszystkich crontabach w porządku sortowania, dzięki czemu można łatwo wybrać sprzeczne linie i tego, który użytkownik je wniósł. Wynikowy wynik jest tylko w celach informacyjnych, a nie w cron.

Codex24
źródło