Анакрон не работает

У меня чистая установка Xubuntu 14.04 32-bit, и anacron не похоже на работу.

Я прочитал, что лучше использовать задание cron для обрезки SSD, и что в Ubuntu для этого есть задание cron, поэтому я удалил сброс из /etc/fstab, Я хотел подтвердить, что работа cron работает, поэтому я добавил echo командовать /etc/cron.weekly/fstrim так что это выглядит так:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
echo "Trim started on" $(date) >> /home/dominic/Desktop/Trim_Runs
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

Он работает нормально с терминала, но никогда не работает как еженедельная работа. Поэтому я переместил его в cron.daily, но это никогда не бежит оттуда также. Поэтому я переместил его в cron.hourlyи он работает каждый час. Текст эха появляется в файле, и индикатор диска загорается примерно на две минуты. Но cron.hourly не использует anacron,

Вот мой crontab файл. Я несколько раз менялся, но, похоже, он не работал с оригинальным временем, которое пришло с Xubuntu.

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 16   * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report      /etc/cron.daily )
47 6    * * 1   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Я проверил, правильно ли он работает из crontab моего пользователя, поместив следующее в crontab -e. Затем я подождал несколько минут до 8:10 вечера, но ничего не произошло.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

10 20   * * *   test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Я думаю, что он должен иметь правильный синтаксис для частей выполнения, потому что он запускается, когда я перемещаю скрипт в cron.hourly,

Кажется, что cron работает но anacron не является. Итак, мой вопрос, что я могу сделать, чтобы получить anacron за работой?

1 ответ

Я получил Anacron, работающий над моей системой, следующим образом:

В /etc/fstab Я переместил некоторые каталоги в tmpfs чтобы избежать записи на SSD, вот так:

tmpfs   /tmp       tmpfs   nodev,nosuid,noatime,mode=1777   0  0
tmpfs   /var/spool tmpfs   nodev,nosuid,noatime,mode=1777   0  0
tmpfs   /var/log   tmpfs   nodev,nosuid,noatime,mode=0755   0  0

Это означает, что /var/spool/anacron/ не существует во время загрузки, и, как следствие, anacron не работает Три файла в этом каталоге должны быть сохранены во время загрузки системы, чтобы Anacron работал. Итак, я создал каталог /usr/local/etc/anacron/и во время загрузки я создаю /var/spool/ и поместите в него символическую ссылку, которая указывает на этот каталог. Сейчас anacron работает, потому что его три файла (cron.daily, cron.weekly, а также cron.monthly) сохраняются через сапоги.

На самом деле, я создаю кучу каталогов при загрузке, как описано здесь: Как исправить anacron & cups-pdf, когда у вас есть / var на tempfs, но я изменил скрипт, чтобы он не создавал /var/spool/anacron но вместо этого он создает символическую ссылку, упомянутую выше.

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

#!/bin/bash

# Script to create required directories in tempfs /var/log (that are not otherwise created).
# This script is needed because I have some directories moved to tmpfs in /etc/fstab.
# That means these directories disappear every time I shut down.
# Programs should create them if they do not exist, but some, like anacron, fail to do   so, and then fail to run.
# So I create them here. I don't know where it gets the permissions from, or whether they are right.
# Thanks to http://blog.philippklaus.de/2011/02/ssd-optimizations-on-linux/ for the list below :-)

for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm hp installer lightdm news ntpstats samba speech-dispatcher unattended-upgrades upstart; do
  if [ ! -d /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

# And in /var/spool.
for dir in cups-pdf; do
  if [ ! -d /var/spool/$dir ] ; then
    mkdir /var/spool/$dir
  fi
done

# Create the symlink.
ln -s /usr/local/etc/anacron /var/spool/anacron

Вышеприведенный скрипт находится в моем домашнем каталоге и запускается во время загрузки командой /etc/rc.local как описано в связанной статье.

Может быть, реальное решение этой проблемы было бы для anacron хранить cron.daily, cron.weekly, а также cron.monthly в каталоге, к которому пользователь вряд ли перейдет tmpfs,

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