10.9 Mavericks Aide pour automatiser une sauvegarde

Jérôme_77

Membre enregistré
7 Août 2018
5
0
36
Bonjour,

Je me sers du terminal pour très régulièrement sauvegarder sur une carte sd le contenu du Bureau, (avec la commande <sudo rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv>)

Mon souci : pour faire ça, actuellement, j'ouvre le terminal puis je colle dedans cette commande que je vais chercher dans un fichier texte. Au quotidien, c'est un peu laborieux !

Est-ce c'est possible d'automatiser ça ? De lancer d'un clic tout le machin ? Avec automator, je tente mais je n'ai rien réussi à faire ?

Pouvez-vous m'aider ? Merci d'avance !
 
Bonjour,
tu peux lancer ta commande depuis un script applescript (enregistré comme application), tu peux même incorporer dans le script ton mot de passe (suite à la commande sudo).
 
Bonjour,

Et dans Automator, tu as la commande ‘exécuter un script shell’ qui te permets justement de faire ce que tu veux.

Cordialement,
Nicolas
 
Merci pour vos réponses.
Mais comme je ne maîtrise pas... applescript ou automator.
Dans les deux, je viens d'essayer, quand je me contente de mettre ma commande (même dans un "exécuter un scipt shell" dans automator), ça ne fait rien. Automator me crée bien une appli mais quand je la lance il ne se passe rien...
Pourriez-vous me guider un peu plus précisément sur ce que je dois faire dans automator, merci ++
 
Il doit y avoir une erreur à cause de l'emploi de sudo.
Il faut que tu lui donnes ton mot de passe pour qu'elle s'exécute.

Peut-être Automator fournit-il une méthode intégrée pour l'exécution de commandes en mode administrateur (ce que permet sudo), avec demande de mot de passe. Sinon, il faut faire ça soi-même : ajouter la demande de mot de passe et intégrer la valeur récupérée dans la ligne de commande.

Autre manière simple de gérer la question : on peut paramétrer sudo pour ne pas avoir besoin d'entrer le mot de passe pour la commande rsync (et que pour elle). Mais, en soi, c'est ajouter une petite faille de sécurité.
J'ai fait ça pour certaines commandes que j'utilise fréquemment (diskutil par exemple) parce que j'en avais marre de taper mon mot de passe...
Si ça t'intéresse, je peux t'indiquer la méthode pour ce faire.
 
Il doit y avoir une erreur à cause de l'emploi de sudo.
Il faut que tu lui donnes ton mot de passe pour qu'elle s'exécute.

Peut-être Automator fournit-il une méthode intégrée pour l'exécution de commandes en mode administrateur (ce que permet sudo), avec demande de mot de passe. Sinon, il faut faire ça soi-même : ajouter la demande de mot de passe et intégrer la valeur récupérée dans la ligne de commande.

Autre manière simple de gérer la question : on peut paramétrer sudo pour ne pas avoir besoin d'entrer le mot de passe pour la commande rsync (et que pour elle). Mais, en soi, c'est ajouter une petite faille de sécurité.
J'ai fait ça pour certaines commandes que j'utilise fréquemment (diskutil par exemple) parce que j'en avais marre de taper mon mot de passe...
Si ça t'intéresse, je peux t'indiquer la méthode pour ce faire.

Merci !
Oui, c'est sûrement là qu'est le problème.
Quand je teste dans automator, il m'indique l'erreur suivante :
sudo : no tty present and no askpass program specified (1)
et il me met cette erreur que j'ai mis "sudo rsync" ou "sudo 'monmotdepasse' rsync"

Je suis preneur de ton astuce pour que plus besoin du mot de passe pour rsync (parce que l'autre méthode, demander le mot de passa et intégrer la valeur récupérée... dépasse mes compétences !
merci d'avance...
 
En regardant dans des forums anglophones, j'ai vu que, avec AppleScript, tu as la possibilité suivante :
Bloc de code:
do shell script “<...>” with administrator privileges
Remplace la partie "<...>" par ta commande, mais sans sudo :
Bloc de code:
do shell script “rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv” with administrator privileges

Peut-être vaudrait-il mieux spécifier le chemin complet de rsync. Je pense que c'est /usr/bin/rsync.
D'où :
Bloc de code:
do shell script “/usr/bin/rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv” with administrator privileges

Pour l'autre méthode, je préfère attendre ce soir pour te l'indiquer : toucher à la configuration de sudo (fichier /etc/sudoers) comporte des risque et doit donc être précise. Comme je n'ai pas de Mac sous la main, je ne peux pas vérifier mes instructions : ce soir, j'aurai ce qu'il faut à disposition ;)
 
En regardant dans des forums anglophones, j'ai vu que, avec AppleScript, tu as la possibilité suivante :
Bloc de code:
do shell script “<...>” with administrator privileges
Remplace la partie "<...>" par ta commande, mais sans sudo :
Bloc de code:
do shell script “rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv” with administrator privileges

Peut-être vaudrait-il mieux spécifier le chemin complet de rsync. Je pense que c'est /usr/bin/rsync.
D'où :
Bloc de code:
do shell script “/usr/bin/rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv” with administrator privileges

Pour l'autre méthode, je préfère attendre ce soir pour te l'indiquer : toucher à la configuration de sudo (fichier /etc/sudoers) comporte des risque et doit donc être précise. Comme je n'ai pas de Mac sous la main, je ne peux pas vérifier mes instructions : ce soir, j'aurai ce qu'il faut à disposition ;)

Ok, merci, j'attendrai donc tes précieux conseils du soir ! (car la première méthode dans applescript ne donne rien - enfin, c'est pas la méthode, c'est moi qui sans doute n'y comprends rien... :)
A plus,
J.
 
Pourtant je viens de tester sur automator, cela fonctionne sans problème:

Dans automator --> Exécuter un script Shell --> dans la case shell : /bin/bash --> dans la case pour écrire le script: rsync -Haurov --delete --progress --ignore-errors --stats /Users/JP /Volumes/Carte-SD/sauv

/Users/JP est le chemin du dossier à copier et synchroniser
/Volumes/Carte-SD/sauv est le chemin de la destination

Je n'ai pas mis de "sudo" et je suis dans une session administrateur.
Pour exécuter le script (pour vérification) clique sur le bouton exécuter en haut à droite.
Si cela fonctionne "enregistre sous" en tant qu'application

Sans titre.png
 
Dernière édition:
Yep !
ça marche !
Il suffisait en effet de ne pas utiliser "sudo".
Je n'avais pas imaginé qu'on pouvait s'en passer parce que dans le terminal il me demande mon mot de passe pour faire cette sauvegarde, alors que là, du coup, pas besoin de mon mot de passe.

Merci à vous tous ! Vraiment super agréable d'être aussi vite et bien conseillé !
 
Content pour toi !