Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Запуск bash скрипта один раз в день после 3х утра.  (Прочитано 3814 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Aday

  • Автор темы
  • Гость
Здравствуйте!
Имеется скрипт смены обоев. Хочу чтобы каждый новый день появлялась новая обоина. Сделал через anacron:
(Нажмите, чтобы показать/скрыть)

Но он меняет обои в 0:00. А мне нужно чтобы с первого запуска утром.
Как это запрограммировать?
Чтобы задача запускалась раз в день и после скажем 3х утра.
« Последнее редактирование: 29 Января 2018, 10:02:19 от CodeMan »

Оффлайн pfg21

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
anacron создан дял периодичного запуска, но запускается он в определенное время, смотри записи /etc/crontab

написать скрипт и таймер для systemd. сложнее, современнее, больше функций.
описание также гуглить.
на домашнем компе к примеру transmission запускается через 5 минут после включения компа, чтобы загрузку не тормозить.
« Последнее редактирование: 29 Января 2018, 10:51:27 от pfg21 »

bghno

  • Автор темы
  • Гость
на домашнем компе к примеру transmission запускается через 5 минут после включения компа, чтобы загрузку не тормозить
Поделитесь,  если не жалко :), тоже надо

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
bghno, в качестве примера
Таймер - https://github.com/Haron-Prime/My_config_files/blob/master/.config/systemd/user/transmission.timer
Сервис - https://github.com/Haron-Prime/My_config_files/blob/master/.config/systemd/user/transmission.service
Оба файла разместить в ~/.config/systemd/user
В терминале выполнить
systemctl --user enable transmission.timer

Пользователь добавил сообщение 29 Января 2018, 12:21:45:
P.S. Таймер установлен на 120 секунд после старта системы
Команду запуска демона следует подредактировать под свои нужды.

Пользователь добавил сообщение 29 Января 2018, 12:40:15:
Для общего развития - https://www.freedesktop.org/software/systemd/man/systemd.timer.html
« Последнее редактирование: 29 Января 2018, 12:40:15 от Haron Prime »

bghno

  • Автор темы
  • Гость
bghno, в качестве примера
Не, мне через крон надо, потому что не только transmission, поэтому и хочу у человека скрипт посмотреть

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
bghno, так а какая разница что именно? Разницы никакой. Сервисы можно писать для любого ПО
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Aday

  • Автор темы
  • Гость
bghno, в качестве примера
Таймер - https://github.com/Haron-Prime/My_config_files/blob/master/.config/systemd/user/transmission.timer
Сервис - https://github.com/Haron-Prime/My_config_files/blob/master/.config/systemd/user/transmission.service
Оба файла разместить в ~/.config/systemd/user
В терминале выполнить
systemctl --user enable transmission.timer

Пользователь добавил сообщение 29 Января 2018, 12:21:45:
P.S. Таймер установлен на 120 секунд после старта системы
Команду запуска демона следует подредактировать под свои нужды.

Пользователь добавил сообщение 29 Января 2018, 12:40:15:
Для общего развития - https://www.freedesktop.org/software/systemd/man/systemd.timer.html
У вас трансмисшн запустится через 120 секунд после каждой загрузки. Мне же нужно чтобы один раз и после 3 часов утра.

Пользователь добавил сообщение 29 Января 2018, 13:53:19:
на домашнем компе к примеру transmission запускается через 5 минут после включения компа, чтобы загрузку не тормозить
Поделитесь,  если не жалко :), тоже надо
В автозагружаемые добавляете пункт с такой строчкой:
/bin/sh -c 'sleep 10 && transmission-gtk -m'
Запуск через 10 секунд после старта системы.
« Последнее редактирование: 29 Января 2018, 13:54:03 от CodeMan »

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
У вас трансмисшн запустится через 120 секунд после каждой загрузки. Мне же нужно чтобы один раз и после 3 часов утра.
1 - я отвечал не Вам
2 - я дал ссылку на мануал, в котором описаны все опции для таймеров systemd, в том числе и запуск по времени (OnCalendar)

bghno

  • Автор темы
  • Гость
В автозагружаемые добавляете пункт с такой строчкой:
/bin/sh -c 'sleep 10 && transmission-gtk -m'
Запуск через 10 секунд после старта системы.
Спасибо, как-то про sleep не подумал

Оффлайн pfg21

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
У вас трансмисшн запустится через 120 секунд после каждой загрузки. Мне же нужно чтобы один раз и после 3 часов утра.
т.е. гуглить и чуть-чуть подумать это не твой вариант ??
Запуск задач по расписанию через Systemd Timer
там усё расписано по русски и доступно. параметр Unit только на свой поменяй.
[Unit]
Description=Execute every day at 03:00

[Timer]
OnCalendar=03:00:00
Unit=backup.service

[Install]
WantedBy=multi-user.target

В автозагружаемые добавляете пункт с такой строчкой:
/bin/sh -c 'sleep 10 && transmission-gtk -m'
Запуск через 10 секунд после старта системы.
ого какой хитрый и умный ход мысли - чегойто вспоминается виндовая юность когда слип организовывали через пинг...
"если в сердце дверь закрыта - можно в печень постучаться" (с) дискотека авария.

Aday

  • Автор темы
  • Гость
У вас трансмисшн запустится через 120 секунд после каждой загрузки. Мне же нужно чтобы один раз и после 3 часов утра.
т.е. гуглить и чуть-чуть подумать это не твой вариант ??
Запуск задач по расписанию через Systemd Timer
там усё расписано по русски и доступно. параметр Unit только на свой поменяй.
[Unit]
Description=Execute every day at 03:00

[Timer]
OnCalendar=03:00:00
Unit=backup.service

[Install]
WantedBy=multi-user.target
Вот именно подумать не мешало. Но только вам. Ни один вариант с cron, anacron или   systemd здесь не подходит.  Надо хоть немного вчитываться в суть вопроса.  Запуск "раз в день в три часа" и "запуск раз в день после трех часов" это совсем разные условия.
Не нужно спамить если не знаете.

Впрочем я уже решил проблему дополнительным скриптом.
Кому интересно читайте здесь https://about--soft.blogspot.com/2018/01/anacron-000-5.html
« Последнее редактирование: 30 Января 2018, 09:56:16 от CodeMan »

bghno

  • Автор темы
  • Гость
0 5 * * * ваш скрипт по смене обоев, cron будет менять обои в 5 часов утра каждый день. Если компьютер выключен, тогда добавляете новое задание cron: */n * * * * скрипт проверки выполнения скрипта по смене обоев через n минут. А вообще раньше была программа по смене обоев, не знаю работает она сейчас. А для погоды лично я использую плагин для браузера :)

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12141
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
CodeMan, вам надо это подарить. :)

Кому интересно читайте здесь https://about--soft.blogspot.com/2018/01/anacron-000-5.html
Решение описанное там - как раз именно такое как на кружке. :)

Почитать спеку на Systemd - конечно же гораздо сложнее чем нагруглить очередной велосипед из костылей в блоге какого-то школьника.

Вот - за вас нагуглил: https://wiki.archlinux.org/index.php/Systemd/Timers#Realtime_timer

ЗЫ и давайте вы не будете указывать тут другим как нужно себя вести... возможно вам тогда не будут объяснять куда вам идти...  ;)
« Последнее редактирование: 30 Января 2018, 14:24:23 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
CodeMan, вам надо это подарить
Только девайс я бы изобразил вот такой  :coolsmiley:

Aday

  • Автор темы
  • Гость
Если компьютер выключен, тогда добавляете новое задание cron: */n * * * * скрипт проверки выполнения скрипта по смене обоев через n минут.
Код в студию пожалуйста. Пустой треп не прокатит. Посмотрим насколько он будет меньше моего.

Пользователь добавил сообщение 30 Января 2018, 15:01:53:
Почитать спеку на Systemd - конечно же гораздо сложнее чем нагруглить очередной велосипед из костылей в блоге какого-то школьника.
Для особо одаренных:
Цитировать
Ни один вариант с cron, anacron или   systemd здесь не подходит.

Не согласныв представьте рабочий равиант на systemd.
« Последнее редактирование: 30 Января 2018, 15:03:03 от CodeMan »

 

Страница сгенерирована за 0.02 секунд. Запросов: 19.