anacron non funziona

4

Ho una installazione pulita di Xubuntu 14.04 a 32 bit e anacron sembra non funzionare.

Ho letto che è meglio usare un cron job per tagliare gli SSD, e che Ubuntu ha un cron job per farlo, quindi ho rimosso lo scarto da /etc/fstab . Volevo confermare che il lavoro cron funzionava, quindi ho aggiunto un comando echo a /etc/cron.weekly/fstrim in modo che assomigli a questo:

#!/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

Funziona bene da un terminale, ma non funziona mai come un lavoro settimanale. Quindi l'ho spostato a cron.daily , ma non viene mai eseguito neanche da lì. Quindi l'ho spostato a cron.hourly e viene eseguito ogni ora. Il testo dell'eco appare nel file e la luce dell'unità si accende per circa due minuti. Ma cron.hourly non usa anacron .

Ecco il mio file crontab . Ho cambiato alcune volte, ma non sembra funzionare con i tempi originali forniti con 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 )
#

Ho provato a vedere se sarebbe stato eseguito correttamente dal crontab del mio utente inserendo quanto segue in crontab -e. Poi ho aspettato alcuni minuti fino alle 20.10, ma non è successo niente.

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 )

Penso che debba avere la sintassi corretta per le parti di esecuzione, perché viene eseguito quando sposto lo script in cron.hourly .

Sembra che cron funzioni ma anacron no. Quindi la mia domanda è: cosa posso fare per ottenere anacron di lavoro?

    
posta Dominic 19.05.2014 - 23:40

1 risposta

1

Ho ottenuto anacron sul mio sistema, come segue:

In /etc/fstab Ho alcune directory spostate a tmpfs per evitare di scrivere sull'SSD, come questo:

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

Ciò significa che /var/spool/anacron/ non esiste al momento dell'avvio e, di conseguenza, anacron non funziona. I tre file in questa directory devono essere preservati attraverso gli stivali di sistema affinché anacron funzioni. Così ho creato una directory /usr/local/etc/anacron/ , e al momento dell'avvio creo /var/spool/ e inserisco un link simbolico che punta a quella directory. Ora anacron funziona perché i suoi tre file ( cron.daily , cron.weekly e cron.monthly ) sono conservati tra gli stivali.

In realtà, ho creato un sacco di directory all'avvio, come descritto qui: Come risolvere anacron & amp; cups-pdf quando hai / var su tempfs ma ho modificato lo script in modo che non crei /var/spool/anacron , ma invece crei il link simbolico sopra menzionato.

Lo script risultante assomiglia a questo:

#!/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

Lo script sopra è nella mia home directory e viene eseguito all'avvio da un comando in /etc/rc.local come descritto nell'articolo collegato.

Forse la vera soluzione a questo problema sarebbe per anacron per memorizzare cron.daily , cron.weekly e cron.monthly in una directory che l'utente non è in grado di spostare in tmpfs .

    
risposta data Dominic 25.05.2014 - 05:12

Leggi altre domande sui tag