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


10

Les tâches planifiées avec «at» sont-elles persistantes lors des redémarrages? De plus, quelqu'un connaît-il un moyen de sauvegarder les travaux sans accéder aux répertoires de spoule appropriés?

Je veux envoyer un e-mail à des intervalles spécifiés à partir de maintenant jusqu'à un an (c'est-à-dire 1 semaine, 1 mois, 6 mois), donc cela semble être un bon outil, peut-être y en a-t-il un meilleur?

Réponses:


10

Oui, ils sont persistants lors des redémarrages (ce ne sont que des fichiers dans une bobine).

En ce qui concerne leur accès, en tant qu'utilisateur régulier, vous n'aurez pas accès aux fichiers, mais vous pouvez créer un système pour les sauvegarder. Peut-être quelque chose comme ça:

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 deviez recharger le travail ultérieurement:

for j in `cat $MYAT/JOBS | cut -f1`
do
  # make sure the job isn't defined
  atrm $j
  # reload it from the file
  at -f $MYAT/$j `grep ^$j $MYAT/JOBS | awk '{ print $3, $2 }'`
done

(tout cela n'est pour l'essentiel pas 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 de pouvoir l'utiliser pour la tâche que vous décrivez. J'utiliserais probablement un système de calendrier préexistant. À défaut, j'utilisais un travail cron qui s'exécutait quotidiennement et vérifiait un fichier pour voir s'il y avait des messages à envoyer. Beaucoup plus portable qu'au travail, et beaucoup plus susceptible de se souvenir si vous changez de machine ...


Je vois comment cela sauvegarde les emplois, mais comment pourrais-je recharger tous ces emplois si nécessaire?
Kyle Brandt

3

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

Cordialement,


0

Je n'ai pas beaucoup utilisé la commande at, mais j'ai utilisé cron pour planifier les tâches à exécuter, et elle persiste à travers les redémarrages. cron travaille pour moi depuis une quinzaine d'années.

Si vous avez besoin d'une commande à exécuter une fois par jour, puis à exécuter une fois même si le système tombe en panne, vous pouvez utiliser anacron .


Je ne pense pas que cron soit vraiment bon à moins que je ne l'utilise comme indiqué jj33 parce que je ne veux pas exécuter quelque chose à intervalles réguliers. Par exemple, lorsque je planifie même l'IA voudra que l'événement A se déroule dans un mois, mais pas tous les mois.
Kyle Brandt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.