Установка ежедневных резервных копий на ноутбуке с cron/anacron на 16,10

Я имею подобные вопросы беспорядку о кроне и anacron (настраивающий расписание резервного копирования для rsnapshot), но там не был отвечен также.

Проблема

Моя проблема состоит в том, чтобы иметь резервную стандартную программу на ежедневной основе на ноутбуке. Так, моя первая идея состояла в том, чтобы установить его в a crontab как

$ crontab -e
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:   
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# I guess as user I have no access to /var/log from this crontab, do I?
@daily ~/my-backups.sh >> ~/.log/my-backup.log

и затем сценарий my-backups.sh должен работать каждый день в полночь (0 0 * * *), правильно?

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

Я должен сделать другую установку? (Из документации я предположил, что это было не нужно и что это должно работать из поля, но не происходит.)

Вопрос

Как я могу настроить cron/anacron для выполнения ежедневного сценария, и в случае, если компьютер был выключен во время выполнения, это должно запустить скрипт на запуске или через какое-то время после запуска.

Использование версии cron.daily

Я изменил свой резервный сценарий, изменяющийся на cron.daily как предложено. Мой сценарий тестирования:

#!/bin/bash

date +%Y-%m-%d >> /var/log/backup.log

Затем добавьте его к /etc/cron.daily как символьная ссылка

sudo ln -s ~/bin/my-backup /etc/cron.daily/backup

Я проверил, и сценарий и символьная ссылка, которую оба имеют, выполняют полномочия.

Затем сегодня, я запустил свою машину приблизительно 9 и первые записи на /var/log/syslog в то время, но нет никакого знака cron.daily там.

$ cat /var/log/syslog | grep cron
Feb 16 09:05:15 box cron[981]: (CRON) INFO (pidfile fd = 3)
Feb 16 09:05:15 box cron[981]: (CRON) INFO (Running @reboot jobs)
Feb 16 09:17:01 box CRON[4574]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 10:17:01 box CRON[6453]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 11:17:01 box CRON[6878]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 12:17:01 box CRON[7310]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 13:14:01 box CRON[7582]: (root) CMD (   test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Feb 16 13:17:01 box CRON[7595]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 14:17:02 box CRON[8134]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Кроме того, прошлый раз выполняемого anacron вчера был

$ sudo cat /var/spool/anacron/cron.daily 
20170215

И я проверяю, и мой сценарий перечислен в cron.daily

$ run-parts --test --report /etc/cron.daily
/etc/cron.daily/0anacron
/etc/cron.daily/apport
/etc/cron.daily/apt-compat
/etc/cron.daily/backup
/etc/cron.daily/bsdmainutils
/etc/cron.daily/cracklib-runtime
/etc/cron.daily/dpkg
/etc/cron.daily/google-chrome
/etc/cron.daily/google-talkplugin
/etc/cron.daily/logrotate
/etc/cron.daily/man-db
/etc/cron.daily/mlocate
/etc/cron.daily/passwd
/etc/cron.daily/popularity-contest
/etc/cron.daily/update-notifier-common
/etc/cron.daily/upstart
0
задан 13 April 2017 в 15:25

1 ответ

Поместите сценарий в /etc/cron.daily, и вы получите именно то, что хотели.

0
ответ дан 27 September 2019 в 11:41

Другие вопросы по тегам:

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