2012-03-14 3 views
1

J'essaye d'enchaîner certaines commandes de terminal afin que je puisse wget un fichier décompresser et ensuite synchroniser directement sur amazon s3. Voici ce que j'ai jusqu'ici j'ai l'outil s3cmd installé correctement et fonctionnant. Cela fonctionne pour moi.Script du terminal de chaînage sur mac OS x

mkdir extract; wget http://wordpress.org/latest.tar.gz; mv latest.tar.gz extract/; cd extract; tar -xvf latest.tar.gz; cd ..; s3cmd -P sync extract s3://suys.media/ 

Comment puis-je créer un script simple? Je peux simplement utiliser des variables?

+0

Vous devriez probablement utiliser '&&' au lieu de ';' car le premier est plus sûr (il ne continuera que si un processus chaîné retourne 0). Voir http://biodegradablegeek.com/2009/06/bash-tips-for-power-users pour plus d'informations – Jwosty

+0

Aussi, comment _do_ vous voulez utiliser les variables? – Jwosty

+0

Salut jwosty merci pour la réponse évidemment nouvelle à ce donc le chaînage, je voulais écrire un petit script où je pourrais taper simplement quelque chose comme ceci $ sync url s3: // seau; donc tout ce qu'ils auraient à faire serait d'insérer une url et le seau, et tout le téléchargement et le téléchargement sur s3 auraient lieu, espérons que cela a du sens. – DCHP

Répondre

1

Vous voudrez probablement regarder bash scripting. Ce guide peut vous aider beaucoup; http://bash.cyberciti.biz/guide/Main_Page

Pour votre question;

Créer un fichier appelé mysync,

#!/bin/bash 
mkdir extract && cd extract 
wget $1 
$PATH = pwd 
for f in $PATH 
do 
    tar -xvf $f 
    s3cmd -P sync $PATH $2  
done 

1 $ et 2 $ sont les paramètres que vous appelez avec votre script. Vous pouvez regarder ici pour plus d'informations sur la façon d'utiliser les paramètres de la ligne de commande; http://bash.cyberciti.biz/guide/How_to_use_positional_parameters

ps; #!/bin/bash est necessity. vous devez fournir votre script où bash est stocké. son/bin/bash sur la plupart des systèmes Unix, mais je ne sais pas si c'est la même chose sur Mac OS X, vous pouvez l'apprendre en appelant quelle commande sur le terminal;

→ which bash 
/bin/bash 

vous devez donner à votre script des privilèges exécutables pour l'exécuter;

chmod +x mysync 

puis vous pouvez l'appeler à partir de la ligne de commande;

mysync url_to_download s3_address 

ps2; Je n'ai pas testé le code ci-dessus, mais l'idée est la suivante. J'espère que cela t'aides.