Eu tenho uma instalação limpa do Xubuntu 14.04 de 32 bits e anacronnão parece estar funcionando.
Eu li que é melhor usar um trabalho cron para aparar SSDs, e que o Ubuntu tem um trabalho cron para fazer isso, então removi o descarte /etc/fstab. Eu queria confirmar que o trabalho cron estava funcionando, então adicionei um echocomando para /etc/cron.weekly/fstrimque fique assim:
#!/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
Ele roda bem em um terminal, mas nunca é executado como um trabalho semanal. Então mudei para cron.daily, mas ele também nunca sai daí. Então mudei para cron.hourly, e ele funciona a cada hora. O texto do eco aparece no arquivo e a luz da unidade acende por cerca de dois minutos. Mas cron.hourlynão usa anacron.
Aqui está o meu crontabarquivo. Eu mudei algumas vezes, mas também não parecia funcionar com os tempos originais que vieram com o 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 )
#
Testei para ver se ele funcionaria corretamente no crontab do meu usuário, colocando o seguinte no crontab -e. Então esperei alguns minutos até as 20h10, mas nada aconteceu.
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 )
Eu acho que deve ter a sintaxe correta para as partes de execução, porque é executado quando eu movo o script cron.hourly.
Parece que cronestá funcionando, mas anacronnão está. Então, minha pergunta é: o que posso fazer para começar a anacrontrabalhar?
@, por exemplo, para executar ping apenas para incluir-me @terdonno seu comentário) ao usuário que a solicitou. Precisamente como você fez. Eu esperava que houvesse um erro de sintaxe, mas tudo parece bem. Eu não tenho nenhuma experiência com anacron embora. Por que você não adiciona o comando que deseja executar ao crontab do usuário? * * * * * /path/to/fstrim. Isso o iniciará a cada minuto e você pode pelo menos verificar se está funcionando.
cron(não tenho certezaanacron) usarun-partspara executar os scripts/etc/cron.weeklyerun-partspossui alguns requisitos muito rigorosos para a nomeação de scripts. Dê uma olhada nosman run-partsdetalhes (embora pareça que esse script deve funcionar bem). Teste também se ele é executado corretamente a partir do crontab (crontab -e) do seu próprio usuário .