2 votes

La tâche Cron échoue à cause d'un wifi en veille ?

J'ai écrit une tâche cron pour effectuer des sauvegardes par wifi sur un autre ordinateur. Cela fonctionne parfaitement lorsque j'utilise la machine, mais je préfère la programmer la nuit lorsque je ne l'utilise pas. La première étape consiste à envoyer un ping au serveur de sauvegarde une fois et à échouer l'ensemble du script si cette étape échoue.

Il échoue systématiquement. :(

J'ai réglé l'économiseur d'énergie pour qu'il ne se mette jamais en veille (quand il est branché).

Est-ce que OS X met toujours le wifi en veille après un certain temps ou quelque chose comme ça ? Il ne le réveille pas pour les tâches cron ? Ou peut-être qu'il le fait, mais que je dois juste attendre qu'il se connecte ?

Mise à jour : @bmike a demandé à propos de mon pmset -g log sortie. J'utilise terminal-notifier pour envoyer une notification.

2015-05-13 16:05:23 -0700 Assertions            PID 56(powerd) TimedOut InternalPreventDisplaySleep "com.apple.powermanagement.delayDisplayOff" 00:09:22  id:0x100000032b [System: DeclUser IntPrevDisp kDisp]
2015-05-14 00:00:01 -0700 Assertions            PID 552(NotificationCen) Created DisplayWake "com.apple.notificationcenter.sleeping-note" 00:00:00  id:0xe00000bc1 [System: DeclUser DispWake kDisp]
2015-05-14 00:00:11 -0700 Assertions            PID 552(NotificationCen) Released DisplayWake "com.apple.notificationcenter.sleeping-note" 00:00:10  id:0xe00000bc1 [System: DeclUser kDisp]

0 votes

Hmm - vous pourriez avoir d'autres problèmes si la machine est en train de dormir. Est-ce que pmset -g log o pmset -g assertionslog montrent quelque chose d'intéressant ?

0 votes

@bmike : J'ai ajouté les journaux pour vous.

1voto

Oskar Points 1242

Dans le passé, j'ai résolu indirectement ce problème plusieurs fois de cette manière :

Un Mac (celui qui est censé ne jamais dormir) a une programmation Energy Saver pour se réveiller ou s'allumer tous les matins à 2 h 55. Il est paramétré pour ne pas dormir, mais il a aussi des tâches launchd (cron est aussi bien si vous voulez conserver cette ancienne méthode de planification) qui se connectent en SSH aux Macs clients.

Les Macs clients sont configurés pour autoriser le réveil pour l'accès à distance, autoriser la mise sous tension (si elle est prise en charge) et autoriser SSH.

Nous avons plusieurs AirPort et AppleTV qui transmettent les requêtes ssh par proxy et envoient un paquet de réveil aux macs clients s'ils sont en train de dormir.

Les clients peuvent alors avoir leurs tâches cron programmées pour leur réveil.

Si vous passez trop de temps à faire en sorte que cela fonctionne, vous pouvez à la place mettre un crochet de sauvegarde dans les tâches périodiques ou les convertir en launchd et les faire fonctionner de manière opportuniste même lorsque l'heure idéale programmée est passée.

0 votes

Que voulez-vous dire par "vous pouvez plutôt mettre un crochet de sauvegarde dans les tâches périodiques" ?

0 votes

man periodic y ls /private/etc/periodic devrait vous permettre de commencer.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X