Как запустить Anacron в пользовательском режиме?

30

Я хотел бы настроить запланированное задание через, anacronно я хотел бы сделать это в режиме пользователя. Как мне этого добиться?

Glutanimate
источник
Если вы хотите, чтобы задача выполнялась в пользовательском режиме, вы можете сделать то, что я сделал, и просто добавить ее sudo -u <user>перед тем, как выполнить задачуanacrontab
Karthik T
2
Также ответили здесь: serverfault.com/questions/172989/user-specific-anacrontab/… и вот хорошее полностью написанное решение: akeil.net/posts/user-controlled-anacron.html
Саймон Вудсайд

Ответы:

33

Вы можете настроить отдельный экземпляр anacron для запуска в пользовательском режиме:

  1. Создайте .anacronпапку в вашем домашнем каталоге и в ней две подпапки, etcи spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Создайте новый файл ~/.anacron/etc/anacrontabс содержимым, похожим на следующее:

    # /etc/anacrontab: configuration file for anacron
    
    # See anacron(8) and anacrontab(5) for details.
    
    SHELL=/bin/bash
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # period  delay  job-identifier  command
    1         10     testjob         test.sh
  3. Добавьте следующую строку в ваш crontab, используя crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimate
источник
Просто чтобы подтвердить, это запускает указанный сценарий от имени пользователя, поэтому whoamiв сценарии будет указано имя пользователя?
Кристоф
хм да, при дальнейшем осмотре я не понимаю, почему нет ...
Кристоф
3
Я думаю, что вам нужно anacronпериодически бегать ; кажется, один раз запустить, а затем выйти. Системный анакрон вызывается один раз в час. Я предполагаю, что подобная стратегия будет работать здесь, то есть вызов пользователя anacronот пользователя crontab.
Sparhawk
1
@Sparhawk согласился, в частности, Ubuntu 15.10 anacron использует и то, /etc/apm/event.d/anacronи другое, /etc/init/anacron.confчтобы позаботиться о перезапусках.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件
1
Вам нужно запускать анакрон ежечасно с помощью задания cron, например,01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Саймон Вудсайд
0

Это сработало для меня (спасибо), но я не использовал последний шаг, указанный в ответе:

Затем добавьте следующую строку в ваш ~/.profile:

Я использую Ubuntu Studio 12.10 Quantal, и в моем случае вместо этого последнего шага я поместил здесь один вкладыш: «Меню приложений» → «Настройки» → «Диспетчер настроек», затем в Диспетчере настроек в разделе «Сеанс и запуск», затем Вкладка «Автозапуск приложения».

Это для тех из нас, кто является пользователями GUI, потому что ~/.profilebash получает только когда запускает интерактивную оболочку входа в систему (даже ~/bashrcне очень полезно, так как это происходит только когда bash запускает интерактивную оболочку).

Сэм
источник
М-м-м, я сам пользователь GUI, и у .profileменя всегда хорошо работала строка в (Ubuntu 12.04 здесь).
Glutanimate