Intereting Posts
перезагрузка системы с более коротким временем ожидания? Почему не останавливает сервер nginx убивать связанные с ним процессы? Как настроить grub для загрузки другого дистрибутива Linux из раздела lvm? Преобразование json-объекта сопоставления в управляемую строку csv с использованием сценария bash Как изменить фокус в X-окне на терминале Можно ли показать вывод rsync на одной строке? Когда я должен создать новую группу томов вместо нового логического тома? Как использовать сортировку gnu для сортировки строк с разделителем поля, представленным только на некоторых строках Sshfs на Beaglebone Black пароль с ручкой Ubuntu 3.14 Разделить CSV-файл на более мелкие файлы на основе некоторого условия Некоторые FTP-клиенты синхронизируют соединение с Pure-FTPd Как исключить скрытые файлы в рекурсивном chmod? Как установить удаленный общедоступный X-сервер без ущерба для его работы? bash_history: комментировать опасные команды: `#` Как найти bash в переносном режиме

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

Предположим, что компьютер запускается нерегулярно. И я хочу запустить определенный скрипт во время загрузки один раз в месяц. Но я не могу настроить работу 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>> 

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

Просто * запустите его в любом расписании с помощью 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-диск?