Периодически запускать определенный скрипт во время загрузки

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

Я хотя об этом подходе.

  • Я создаю файл с последним временем выполнения скрипта.
  • При каждой загрузке я делаю следующее:

if(file_exists("last_boot.txt")) { if(<<more then a month has passed since last date time>>) { <<run script>> } } else { <<run script>> } <<write current date time into the file>> 

Можно ли это сделать, используя некоторые стандартные инструменты без трюка с файлом?

One Solution collect form web for “Периодически запускать определенный скрипт во время загрузки”

Просто * запустите его в любом расписании с помощью cron и проверьте другую часть расписания в скрипте:

В одну сторону:

 @reboot /path/to/my_script.sh if has_run_this_month() { exit } 

Другой путь:

 0 0 1 * * /path/to/my_script.sh if has_run_since_reboot() { exit } 

* Существует несколько проблем с этим способом:

  • Вы когда-нибудь поддерживали работу машины более месяца? Два месяца? Что происходит в любом случае?
  • Вы когда-нибудь оставляете машину более месяца? Вы можете видеть, где это происходит …
  • Как вы убедитесь, что путь, в котором вы сохраняете состояние (потому что вы должны хранить его где-то постоянным), не может быть уничтожен при загрузке, потому что это RAM-диск?
  • Не все сценарии оболочки, работающие с crontab
  • Cron неожиданно вызывает скрипт каждые 15 минут
  • Значение записи «* * / 1 * * *» cron?
  • переменные в crontab
  • Получить список всех скриптов и их путей, которые запускаются как работа cron
  • Правильный формат cron
  • Разница между вкладками CRON 0/5 и * / 5?
  • Cron несколько скриптов каждые 5 минут с 10 секундами между каждым скриптом
  • Запуск скрипта каждые 30 минут с помощью crontab с использованием ROOT (Debian)
  • Мой скрипт сообщается как выполняющийся в журнале CRON, но он не указан в crontab любого пользователя
  • Как я могу запускать программу только один раз в день, учитывая учет времени безотказной работы и возможную сбой программы?
  • Interesting Posts

    selinux разрешить порт портвейна 8332

    переименовать несколько файлов с одной переменной

    Перезагрузка серверов Centos, настроенных с помощью репликации Master / Slave от MYSQL

    Как использовать awk для исправления и унификации поврежденного файла с несколькими столбцами и строками?

    увеличивать значение, извлекаемое из файла

    Удаление файлов, за исключением того, что имя содержит подстроку

    grep фиксированная строка в конце строки

    Linux Ubuntu от одной архитектуры к другой

    Разница между файловым и файловым дескриптором, связанным с файлом

    Возврат оболочки каждого пользователя по умолчанию

    Файловая система для Gentoo root?

    Административно распространять несколько правил для каждого получателя Thunderbird для некоторых пользователей?

    Как отключить звук затвора gnome-screenshot?

    Дополнительные группы openldap, не отображающиеся на определенных серверах

    Движение по диагональному тачпаду приводит к шаткой линии

    Linux и Unix - лучшая ОС в мире.