Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Technologies Apple _ automatiser la copie d'un dossier avec automator

Écrit par : boiperso 27 Feb 2017, 18:15

Bonjour
Je souhaite automatiser la copie d'un dossier du finder vers un dossier situé sur Icloud. J'ai trouvé un pas à pas mais il date de 2006 et je ne retrouve pas les commandes citées dans cet article sur mon automator. Alors suis perdu
Qui peux m'aider ?
Merci

Écrit par : Fraido 1 Mar 2017, 18:02

Bonjour,

Il y a soit "RSYNC" soit "CP" qui peuvent être utilisés dans ce cas.

Pour ce faire :

1) Ouvrir Automator et ouvrir un nouveau PROCESSUS (il sera transformé en application plus tard)
2) Ajouter l'objet "Demander des éléments du Finder" au processus
3) Changer le "Type" de l'objet vers : "Dossiers"
4) Ajouter l'objet "Exécuter un script Shell" au processus
5) Dans la fenêtre Shell, il faut ajouter le code suivant :

Code
PATH=/bin:/usr/bin:/usr/sbin
export PATH

var1="Rien à copier."
var2="Copie(s) effectuée(s)."
if [ "$1" == "" ]; then
osascript -e "display notification \"$var1\""
sleep 2
else
cp -r "$@" "/Chemin/Vers/Le/Répertoire/Distant"
osascript -e "display notification \"$var2\""
fi


6) Changer "/Chemin/Vers/Le/Répertoire/Distant" par le chemin menant au répertoire distant (en gardant les guillemets).
7) Changer l'option "Données en entrée:" du script Shell vers "Comme arguments"
8) Tester le script en cliquant sur "Exécuter"

En cas d'erreur, lors de la copie des messages apparaîtront dans les Résultats du Script Shell ou dans l'Historique.
En cas de retour vide lors du choix du répertoire, l'application affichera une notification.
En cas de copie réussie aussi.

9) Sauver le script en sélectionnant le Format PROCESSUS.
10) Faire une copie du processus (commande-shift-S) et le sauver au Format APPLICATION

Si ces dernières étapes ne sont pas respectées (9-10), il ne sera pas possible de réouvrir le processus en vue de le modifier.

IL NE FAUT JAMAIS SAUVER DIRECTEMENT UN "PROCESSUS" QUE L'ON VEUT POUVOIR MODIFIER PAR LA SUITE AU FORMAT "APPLICATION", IL FAUT D'ABORD LE COPIER.

 

Écrit par : boiperso 1 Mar 2017, 19:22

Bonjour et merci beaucoup de votre réponse.
J'ai néanmoins quelques questions :

- que veut dire cette phrase ?:

Citation
Il y a soit "RSYNC" soit "CP" qui peuvent être utilisés dans ce cas.

- je ne trouve pas la commande dont vous parlez :
Citation
4) Ajouter l'objet "Exécuter un script Shell" au processus

- Les données copiées écraseront t-elle les données présentes dans le dossier de destination sur Icloud ?
- A quelle fréquence la sauvegarde est elle effectuée ? Peut-on la programmer ?

Merci encore !

Écrit par : Fraido 1 Mar 2017, 23:00

Citation
4) Ajouter l'objet "Exécuter un script Shell" au processus

Sélectionnez "Utilitaires" dans la bibliothèque d'Automator et lancez une recherche dans la case recherche d'Automator (contenant la loupe) en utilisant le mot clé "shell". L'action apparaîtra juste en dessous du champs de recherche, il n'y a plus qu'à la joindre au projet.

Citation
Il y a soit "RSYNC" soit "CP" qui peuvent être utilisés dans ce cas.

Cela signifie qu'il existe au moins deux possibilités (voir ligne 10 du script) afin d'effectuer la tâche demandée.
Dans l'exemple que je fourni c'est la commande "cp" qui est utilisée, mais, en fonction des besoins, il est possible d'utiliser "rsync", ou "mv".

Citation
- Les données copiées écraseront t-elle les données présentes dans le dossier de destination sur Icloud ?

Pour savoir quelle commande convient le mieux, il faudrait nous indiquer exactement ce que doit faire le programme. S'agi-t-il d'écraser un répertoire existant et tout son contenu? Ou bien d'incrémenter un répertoire en lui ajoutant des nouveaux fichiers et dossiers, ou autre?
Faut-il conserver les icônes et les fichiers cachés?
Cette copie requière-t-elle un mot de passe?
Quelle quantité de données seront copiées à chaque lancement?

Citation
- A quelle fréquence la sauvegarde est elle effectuée ? Peut-on la programmer ?

C'est possible via le crontab mais implique que l'utilisateur root soit enclenché (et quelques manipulations complexes), à voir par la suite.

Cordialement.

Écrit par : boiperso 2 Mar 2017, 08:45

Citation
S'agi-t-il d'écraser un répertoire existant et tout son contenu?

oui en fait, c'est un dossier qui concerne mon activité professionnelle appelé TRAVAIL. Chaque fois que j'enregistre un fichier dans un sous dossier, j'aimerais qu'il en soit fait une copie sur mon dossier TRAVAIL sur Icloud. Comme cela j'ai une suvegarde parfaitement à jour en permanence.

Citation
Ou bien d'incrémenter un répertoire en lui ajoutant des nouveaux fichiers et dossiers, ou autre?



Citation
Faut-il conserver les icônes et les fichiers cachés?

ça je ne sais pas ...

Citation
Cette copie requière-t-elle un mot de passe?

non

Citation
Quelle quantité de données seront copiées à chaque lancement?

c'est de l'ordre de quelques feuilles excel word ou quelques feuilles scannées

L'idéal c'est qu'avant de fermer mon ordi le soir, une sauvegarde soit faite automatiquement.

Merci beaucoup !

Écrit par : Fraido 2 Mar 2017, 19:11

Je n'utilise pas iCloud mais il me semble qu'il existe une option permettant de synchroniser les documents et répertoires locaux se trouvant sur le Bureau ou dans le répertoire /utilisateur/Documents avec le Cloud.

Il faut pour cela se rendre dans les Préférences Système - iCloud - Option.

Ensuite il faut cocher l'option "répertoire Bureau et Documents".
Son icône est celle du Finder.

Les documents ajoutés au Bureau ou dans le répertoire /utilisateurs/Documents seront automatiquement copiés dans le Cloud.

Est-ce cela que vous cherchez à effectuer?

 

Écrit par : boiperso 3 Mar 2017, 13:19

oui c'est plus simple en effet.
Merci beaucoup

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)