10 votes

Linux à la commande persistante à travers les redémarrages?

Les emplois programmés avec 'at' persistent-ils à travers les redémarrages? De plus, quelqu'un sait-il s'il existe un moyen de sauvegarder les emplois sans accès aux répertoires des tâches?

Je souhaite envoyer un email à des intervalles spécifiés à partir de maintenant jusqu'à un an (par exemple 1 semaine, 1 mois, 6 mois) donc cela semble être un bon outil, peut-être y en a-t-il un meilleur?

10voto

Curt Hagenlocher Points 12432

Oui, ils persistent à travers les redémarrages (ce ne sont que des fichiers dans une file d'attente).

En ce qui concerne l'accès à ces fichiers, en tant qu'utilisateur normal, vous n'aurez pas accès aux fichiers, mais vous pourriez construire un système pour les sauvegarder. Peut-être quelque chose comme ceci:

MYAT=~/atjobs

/bin/rm -rf $MYAT/*

at -l >$MYAT/JOBS
for j in `cat $MYAT/JOBS | cut -f1`
do
  at -c $j >$MYAT/$i
done

Si vous avez besoin de recharger le travail plus tard:

for j in `cat $MYAT/JOBS | cut -f1`
do
  # assurez-vous que le travail n'est pas défini
  atrm $j
  # rechargez-le depuis le fichier
  at -f $MYAT/$j `grep ^$j $MYAT/JOBS | awk '{ print $3, $2 }'`

(tout cela est principalement non testé. Les commandes de base sont correctes mais il y a sûrement un bug dans la logique quelque part)

Cela dit, je ne suis pas sûr que j'utiliserais at pour la tâche que vous décrivez. Je utiliserais probablement un système de calendrier préexistant. Sinon, j'utiliserais un travail cron qui s'exécute quotidiennement et vérifie un fichier pour voir s'il y a des messages à envoyer. Beaucoup plus portable que les travaux at, et beaucoup plus susceptible d'être rappelé si vous changez de machine...

3voto

Lucas Famelli Points 336

Lorsque vous planifiez un emploi avec at, même si un redémarrage est effectué (ils sont stockés dans /var/spool/cron/atjobs), l'emploi est toujours planifié.

Cordialement,

0voto

Dan Mitchell Points 333

Je n'ai pas beaucoup utilisé la commande at, mais j'ai utilisé cron pour planifier des tâches à exécuter, et il est persistant à travers les redémarrages. cron a fonctionné pour moi depuis environ quinze ans.

Si vous avez besoin qu'une commande soit exécutée une fois par jour, et qu'elle soit exécutée même si le système tombe en panne, vous pouvez utiliser anacron.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X