Как изменить редактор crontab по-умолчанию

Хотите, чтобы crontab использовал редактор по вашему выбору, а не наоборот? Этот урок покажет вам как. Эти инструкции будут работать с Linux, macOS и другими Unix-подобными операционными системами.
Текстовый редактор выполняет довольно обыденную задачу. Тем не менее, глубокие чувства, которые люди связывают с редактором своих личных предпочтений, привели к пламенным войнам, которые разгораются с 1985 года. Мы не разжигаем этот огонь и не защищаем одного редактора над другим. Мы собираемся показать вам, как изменить редактор по-умолчанию для crontab на что-то другое, если вы решите.
Команда crontab -e откроет редактор, чтобы вы могли редактировать свою таблицу cron. Ваша таблица cron содержит список всех запланированных заданий, которые вы запланировали выполнять в указанное время. Мы не будем вдаваться в детали работы cron в этой статье. Мы просто смотрим на редактор, связанный с командой crontab -e .
В самый первый раз, когда вы crontab команду crontab с опцией -e (edit) в терминале Bash, вас попросят выбрать редактор, который вы хотите использовать. Введите crontab, пробел, -e и нажмите Enter.
crontab -e

Выбранный вами редактор затем используется для открытия таблицы cron. В этом примере nano был выбран нажатием клавиши 1.

Редактор, который вы выбираете из меню, используется каждый раз, когда вы запускаете команду crontab -e. Если вы позже передумаете, как выбрать другой редактор, если вы получаете меню только в первый раз? Это легко сделать командой:
select-editor

Пока все просто. Но что, если вы хотите использовать редактор, которого нет в этом меню? Или что, если вы работаете в операционной системе, которая не предоставляет команду select-editor? Мы можем справиться и с этими сценариями.
А как насчет дистрибутивов, которые не предоставляют select-editor?
Мы можем установить редактор по умолчанию для crontab, добавив строку в наш файл .bash_profile. Введите эту команду:
gedit ~/.bash_profile
Когда появится редактор, добавьте эту запись в файл:
export VISUAL="gedit"

Конечно, вы должны заменить команду, которая запускает редактор, который вы хотите использовать, на «gedit». Сохраните этот файл и закройте редактор. Чтобы эти изменения вступили в силу, выйдите из системы и снова войдите в систему или выполните команду:
. ~/.bash_profile

Обратите внимание, что линия начинается с точки. Команда source является псевдонимом для команды period и выполняет то же действие. Но не все дистрибутивы предоставляют source команду. Команда period всегда должна присутствовать. С учетом этого предостережения команда source присутствовала во всех дистрибутивах, которые эта статья тестировала на Ubuntu, Debian, Manjaro, Arch, Fedora, CentOS и OpenIndiana.
Вводите ли вы точку или source слова, команда заставляет параметры из вашего .bash_profile быть прочитанными и перенесенными в ваш текущий сеанс. Теперь, когда вы печатаете:
crontab -e
Указанный вами редактор будет использоваться для открытия таблицы cron.

Ваш .bash_profile не может быть пустым
Ваш файл .bash_profile может быть не пустым при редактировании. Просто прокрутите вниз и добавьте строку export VISUAL=»gedit» . Это стандартный файл .bash_profile в Manjaro Linux с добавлением новой строки:

И наконец, OpenIndiana
С OpenIndiana вам нужно добавить строку export VISUAL=»gedit» в ваш файл .bashrc, а не в ваш .bash_profile. Команда, которую вам нужно ввести:
pluma ~/.bashrc
Добавьте строку и сохраните файл, закройте и снова откройте окно терминала.
Введите команду crontab -e чтобы убедиться, что ваши изменения вступили в силу:

И теперь ваша таблица cron загружена в nano.
Теперь вы можете указать редактор по вашему выбору во многих типах Linux, будь то потомок Debian, RedHat, Arch или что-то похожее на простой Unix.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Linux.yaroslavl.ru
crontab это команда, которая позволяет вам регулярно выполнять команды через заданные промежутки времени, при этом вам нет необходимости входить в систему, а отчет о выполнении команды будет высылаться к вам на email. Вы можете задавать интервалы в минутах, часах, днях и даже месяцах. В зависимости от заданных опций, crontab может делать разные действия:
- -l: Показать ваш текущий файл crontab.
- -e: Редактировать ваш файл crontab.
- -r: Удалить ваш файл crontab.
- -u : Применить одну из вышеупомянутых опций для пользователя . Это может делать только root .
Давайте начнем редактировать crontab. Если вы наберете командочку crontab -e, вы очутитесь в своем любимом текстовом редакторе. В случае, если вы не изменяли переменных окружения EDITOR или VISUAL, то это будет Vi. Файл crontab состоит из строк, каждая из которых имеет шесть полей. Первые пять полей определяют временной интервал в минутах, часах, днях, месяцах и днях недели. Шестое поле - это команда для выполнения. Строки, начинающиеся с # - это комментарии и они будут проигнорированы crond (это программа, которая отвечает за выполнение заданий, содержащихся в файле crontab). Приведем пример файла crontab:
Замечание
Для того, чтобы привести этот пример удобочитаемым шрифтом, мы были вынуждены сделать разрывы длинных строк. Поэтому, если в примере строка заканчивается символом \, это значит, что следующая строка является продолжением текущей. Это соглашение действительно для файлов Makefile, в командах и скриптах shell, а также в любых других местах, где это следует из контекста.
# Если вы не желаете, чтобы вам отсылалась почта, # просто раскомментируйте следующую строку # MAILTO="" # # Каждые 2 дня в 14:00 выполнять # пример, приведенный выше. После этого # cделать временную метку (файл "stamp") # с помощью "retouch" # Символ "%" рассматривается как новая строка # что дает вам возможность помещать несколько # команд в одной строке # 0 14 */2 * * find /shared/images \ -cnewer /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex \ ".*/old/.*"%touch /shared/images/stamp # # На каждое рождество проиграть мелодию :) 0 0 25 12 * ogg123 $HOME/sounds/merryxmas.ogg # # Каждый вторник печатать список покупок 0 17 * * 2 lpr $HOME/shopping-list.txt
Существует еще несколько способов задания интервалов, отличных от приведенного примера. Например, вы можете задавать дискретные значения, разделяя их запятыми (1,14,23) или диапазон (1-15), или комбинировать оба способа (1-10,12-20), или даже с произвольным шагом (1-12,20-27/2). Теперь ваша задача найти полезные команды и поместить их сюда!
| Пред. | Уровень выше | След. |
| find: Поиск Файлов по Некоторым Критериям | Начало | at: единоразовое задание команды |
linux samba mail postfix FreeBSD Unix doc linux howto ALTLinux PHP faq bind sendmail apache iptables firewall kernel rpm apt-get Slackware openssh Cisco debian vmware GNU oracle sun awk /etc/ passwd linux установка учебник книга скачать
Как добавлять, редактировать или удалять задания cron в пакетном режиме
Указывая имя файла в качестве аргумента для команды cron вы можете установить новые задания cron из текстового файла. Как это сделать показано ниже.
Прежде всего вам необходимо создать текстовый файл со всеми необходимыми заданиями cron.
cat cronjobs.txt
* * * * * echo How are you? > q.txt
* * * * * echo I am OK. > a.txt
Далее установите задания следующим образом:
crontab cronjobs.txt
Обратите внимание, что эта команда полностью перезапишет все существующие задания. Стоит предварительно сохранить задания cron:
crontab -l > currentjobs.txt
Редактирование crontab в пакетном режиме.
Вы можете редактировать crontab в пакетном режиме используя несколько методов (к примеру, с использованием sed).
Пример: изменить перенаправление вывода с перезаписи (>) на добавление (>>) для всех заданий в cron.
crontab -l
* * * * * echo How are you? > q.txt
* * * * * echo I am OK. > a.txt
crontab -l | sed 's/>/>>/' | crontab -
crontab -l
* * * * * echo How are you? >> q.txt
* * * * * echo I am OK. >> a.txt
Удалить все задачи для текущего пользователя.
Команда crontab имеет параметр -r который позволяет удалить все задания cron для текущего пользователя. Если у вас достаточно прав, то вы даже можете удалять задания cron для других пользователей используя вместе опции -r и -u.
Удалить задания для текущего пользователя:
crontab -r
Удалить задания для указанного пользователя:
crontab -r -u USERNAME
3.1.6. Редактирование crontab–файла
При сохранении файла программа cron проверяет значения полей и информирует пользователя об обнаруженных ошибках. Если какая?либо запись содержит ошибку, файл не будет принят.
В процессе редактирования crontab–файла можно добавлять в него новые записи. Добавим, например, следующую запись:
• удаление файлов дампа в 3.30 утра в 1–й, 7–й, 14–й,
• 21–й и 2б–й день каждого месяца
30 3 1,7,14,21,26 * * /bin/find -name "core" — exec rm <> ;
Желательно размещать перед каждой записью комментарий, объясняющий ее назначение.
Теперь сохраним файл, выйдем из редактора и проверим результат:
#(davecron installed on Tue May 4 13:07:43 1999)
#вывод текущей даты на экран
#каждые 15 минут между 18:00 и 6:00
0,15,30,45 18-06 * * * /bin/echo "date" > /dev/console
#удаление файлов дампа в 3.30 утра в 1–й, 7–й, 14–й,
#21–й и 26–й день каждого месяца
30 3 1,7,14,21,26 * * /bin/find -name "core" — exec rm <> ;
Читайте также
Редактирование WS-файла на панели Workspace Nexus
Редактирование WS-файла на панели Workspace Nexus При работе с WS-файлом в режиме workspace на панели Workspace Nexus можно производить следующие операции.? Добавлять новое задание (элемент <job>). Для этого нужно выделить имя WS-файла, нажать правую кнопку мыши и выбрать в контекстном меню
Редактирование файла /etc/hosts.lpd
Редактирование файла /etc/hosts.lpd По умолчанию система BSD LPD не принимает задания на печать с удаленных компьютеров, т.е. реализующие ее программы не могут выполнять роль сетевого сервера печати. Для того, чтобы изменить конфигурацию системы, необходимо отредактировать файл
Редактирование файла /etc/lpd.perms
Редактирование файла /etc/lpd.perms Файл /etc/lpd.perms управляет доступом к системе печати в целом. Файлы lpd.perms могут находиться также в каталогах спулинга для отдельных очередей (/var/spool/lpd/имя_очереди). Если такие файлы присутствуют, они осуществляют контроль за конкретными
Редактирование файла /etc/cups/cupsd.conf
Редактирование файла /etc/cups/cupsd.conf Работой сервера CUPS управляет файл /etc/cups/cupsd.conf. Поскольку система CUPS позаимствовала многие средства сервера HTTP, структура ее конфигурационного файла напоминает соответствующий файл Apache (он будет рассмотрен в главе 20). При работе CUPS также
Редактирование файла sshd_config
Редактирование файла sshd_config Работой сервера sshd управляет файл sshd_config, который обычно находится в каталоге /etc/ssh. (He следует путать файл sshd_config с конфигурационным файлом клиента ssh_config, который размещается в том же каталоге.) В файле sshd_config указываются опции и их значения.
8.3.1. Редактирование файла /etc/fstab
8.3.1. Редактирование файла /etc/fstab Файловая система - один из важнейших общесистемных сервисов. Монтирование основных файловых систем осуществляется на этапе загрузки системы. Другие (дополнительные) файловые системы монтируются командой mount, которая была рассмотрена в
7.6.2.1. Файл конфигурации /etc/crontab
7.6.2.1. Файл конфигурации /etc/crontab Основной конфигурационный файл данного планировщика называется /etс/crontab. Этот файл является общесистемным расписанием и его может редактировать только пользователь root. Формат файла crontab следующий:М Ч Д ММ ДН Командагде;• М - минута (0-59);• Ч -
7.6.2.4 Пользовательские файлы crontab
7.6.2.4 Пользовательские файлы crontab Каждый пользователь может создать свой файл crontab. Для этого используется команда crontab. Пользовательские файлы crontab помещаются в каталог /var/spool, чтобы исключить их непосредственное редактирование в текстовом редакторе.Пользовательские
3.1. Планировщик cron и команда crontab
3.1. Планировщик cron и команда crontab Программа cron является основным системным планировщиком, служащим для выполнения различных заданий в фоновом режиме. Команда crontab позволяет пользователям создавать, редактировать и удалять инструкции для программы cron посредством
3.1.1. Структура crontab–файла
3.1.1. Структура crontab–файла Чтобы планировать выполнение заданий в определенное время, нужно знать формат записей в crontab–файле. Каждая запись содержит шесть полей; 1 Минуты — 0—59 2 Часы — 0—23 (0 означает полночь) 3 День месяца — 1—31 4 Месяц — 1—12 5 День недели — 0—7
3.1.2. Примеры записей в crontab–файле
3.1.2. Примеры записей в crontab–файле Запись30 21 * * * /apps/bin/cleanup.shозначает выполнение сценария cteanup.sh в каталоге /apps/bin каждый вечер в 21:30. Запись45 4 1,10,22 * * /apps/bin/backup.shозначает выполнение сценария backup.sh в каталоге /apps/bin в 4:45 утра 1–го, 10–го и 22–го числа каждого месяца. Запись10 1 * * 6,0
3.1.3. Опции команды crontab
3.1.3. Опции команды crontab Общий формат команды crontab таков:crontab [-u пользователь] — e -l -r ОПЦИЯ назначение -u пользователь Установка имени пользователя, для которого нужно создать crontab–файл -e Активизация режима редактирования crontab–файла -1 Отображение содержимого
3.1.5. Вывод на экран содержимого crontab–файла
3.1.5. Вывод на экран содержимого crontab–файла Для вывода на экран содержимого crontab–файла предназначена команда crontab -l:$ crontab -l#(davecron installed on Tue Kay 4 13:07:43 1999)#вывод текущей даты на экран#каждые 15 минут между 18:00 и 6:000,15,30,45 18-06 * * * /bin/echo "date" > /dev/consoleВот как легко можно создать
3.1.7. Удаление crontab–файла
3.1.7. Удаление crontab–файла Для удаления своего crontab–файла введите команду $ crontab
3.1.8. Восстановление утерянного crontab–файла
3.1.8. Восстановление утерянного crontab–файла Если crontab–файл случайно удален, инсталлируйте заново исходный файл из вашего начального каталога:$ crontab <имя_файла>Именно по этой причине в документации к программе cron говорится о том, что не рекомендуется прибегать к