Arch Linux - Как запустить задание cron?

Поскольку ваш md2 не пуст, самый простой способ - в rsync данные из / var в новый раздел, а затем создайте программную ссылку:

 rsync -xav /var /home/VAR
 mv /var /var.org
 ln -s /home/VAR /var

Это лучше всего сделать при загрузке с живого дистрибутива (с установленным md1 и md2 и адаптированные пути), если это невозможно, вы можете захотеть rsync в другой раз, чтобы уловить изменения во время rsync (загрузка из действующей системы лучше). Если вы сделаете это из действующего дистрибутива, вы можете сократить время простоя (как указывает @cas), выполнив первоначальный rsync в рабочей системе, чтобы только измененные файлы нуждаются в синхронизации после перезагрузки в действующей системе.

В качестве альтернативы созданию программной ссылки вы можете рассмотреть возможность использования bind mount / home / VAR / on / var . Я не уверен, есть ли в этом преимущества или нет.

После того, как все, что вы проверили, есть и работает, вы можете удалить / var / org

4
23.05.2017, 14:33
3 ответа

В Arch Linux нет crond.service . Как ясно сказано в Arch Wiki:

Существует множество реализаций cron, но ни одна из них не установлена ​​по умолчанию , поскольку вместо этого базовая система использует systemd / Timers.

Следовательно, если вы хотите использовать cron, вы должны выбрать , какую из многих реализаций вы будете устанавливать, а затем запустить эту конкретную службу.

Вы не просто случайным образом набираете systemctl enable nonexistent.service , а затем задаетесь вопросом, почему он не работает ...

Если вам нужен cronie, вы устанавливаете cronie и запускаете его с помощью:

pacman -Syu cronie
systemctl enable --now cronie.service

Документация Arch обычно очень ясна; если вы внимательно прочитаете страницы, на которые вы ссылаетесь, вы должны выяснить, что вам нужно.

8
27.01.2020, 20:57

e

создать файл с вашей задачей crone и т. Д. Cron.txt

cat cron.txt 0 1 * * * systemctl stop iradio; shutdown -P 0 30 23 * * * systemctl stop clock 34 23 * * * systemctl start clock

затем crontab новый файл

crontab cron.txt

Кажется чтобы работать сейчас.

-3
27.01.2020, 20:57

Если я вас правильно понял, вы имеете в виду с...

How to run a 'cron' job

...запланированные события в Arch Linux. Это довольно просто, используя systemd/Timers в качестве замены cron.

Хотя cron, возможно, является наиболее -известным планировщиком заданий, альтернативой ему могут быть таймеры systemd.

Преимущества

Основные преимущества использования таймеров заключаются в том, что каждое задание имеет собственную службу systemd. Некоторые из этих преимуществ:

  • Задания можно легко запускать независимо от их таймеров. Этот упрощает отладку.
  • Каждое задание можно настроить для выполнения в определенной среде (см. systemd.exec (5 )).
  • Задания можно присоединять к контрольным группам.
  • Задания можно настроить так, чтобы они зависели от других модулей systemd.
  • Задания регистрируются в журнале systemd для облегчения отладки.

...как упоминалось здесь

Если вам нужно использовать cron, это все еще возможно и описано здесь .


Чтобы сделать этот ответ полезным, приведем минимальный пример для ежедневной автоматической перезагрузки по расписанию в 01 :30.

1. Создать два файла, один служебный файл и один файл таймера. Оба имени (.timer и.service )должны совпадать . Ф.э.:

sudo vim /usr/lib/systemd/system/scheduledReboot.service

sudo vim /usr/lib/systemd/system/scheduledReboot.timer

(Папка /usr/lib/systemd/system/... является папкой по умолчанию, содержащей все файлы.service, к вашему сведению)

2.1 Файл ScheduleReboot.service содержит:

[Unit]
Description=Scheduled Reboot

[Service]
Type=simple
ExecStart=/usr/bin/systemctl --force reboot

2.2 Файл ScheduleReboot.timer содержит:

[Unit]
Description=Reboot Scheduling.

[Timer]
OnCalendar=*-*-* 01:30:00

[Install]
WantedBy=multi-user.target
  1. И, наконец, начать работу:

sudo systemctl start scheduledReboot.timer

sudo systemctl enable scheduledReboot.timer

  1. Проверьте, успешно ли создано задание:

sudo systemctl list-timers --all

и/или

sudo systemctl status scheduledReboot.timer

..это показывает что-то вроде:

Trigger: Sun 2020-05-31 01:30:00 EDT; 10h left


Мне лично очень нравится подход systemd /.service, так как я использую все свои системные задания с systemctl, такие как автоматическое монтирование моих дисков nfs и т. д., и это работает очень хорошо и эффективно.

4
30.05.2020, 18:54

Теги

Похожие вопросы