18 votes

Existe-t-il une commande bash pour vérifier si Time Machine a fini de sauvegarder ?

J'écris un script qui va rsycnc mon répertoire Time Machine vers un serveur distant en utilisant ssh. Je suis passé d'un script shell à un AppleScript puis de nouveau à un script Apple et je ne me soucie pas vraiment du type de script que la solution exigera.

J'ai réussi à démarrer le processus de sauvegarde avec ce petit bout de code.

do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"

Ce que j'essaie de faire maintenant, c'est d'exécuter une commande rsync une fois que la sauvegarde est terminée. Existe-t-il un moyen propre à AppleScript de vérifier si le processus de sauvegarde est terminé ? Ou existe-t-il un bon "hook" que vous pouvez utiliser dans bash pour vérifier si le processus est terminé ?

1voto

Nilam Points 1

Les éléments suivants fonctionnent pour moi...


script backup_status :

    #!/usr/bin/env bash
    #
    # Determines if Time Machine is running and works with older Mac OS x versions
    #
    if [ x == x`type -P tmutil` ]; then
            # Older OSx
            count=`ps -ef | grep -v grep | grep -c 'CoreServices/backupd'`
            # Should also detect /Volume/Time Machine …/Latest/… directory ….inProgress/… bundle existence here to make it tight.
    else
            # OSx 10.7+
            count=`tmutil status | grep -c "Running = 1"`
    fi

    if [ $count == 0 ]; then
            echo stopped
    else
            echo running
    fi

script backup_wait :

    #!/usr/bin/env bash

    #
    # Waits for Time Machine backup to complete
    #
    while [ `backup_status` == running ] ; do
            sleep 2
    done

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