Script Bash pour chargement FTP

Je ne suis pas au mieux de ma forme mais voici un petit script pondu pour mettre à jour la racine d’un site web sans passer par gftp (ou tout autre programme d’ailleurs).

#!/bin/bash

echo « =============================================== »
echo « =        UPLOAD                               = »
echo « =                  TO                         = »
echo « =                          SERVER             = »
echo « =============================================== »
echo «  »

#Variables utilisées
FTP_SERVER= »perso-ftp.orange.fr » ;
FTP_USER= »my_username » ;
FTP_PASSWORD= » » ;
FTP_FOLDER= »/blabla/root_web/« ;

# On référence les fichiers à copier
FTP_FILES=`ls $FTP_FOLDER/*`
echo « Les fichiers suivants vont êtres copiés !! »
echo « —————————————— »
for F in $FTP_FILES
do echo $F
done
echo « ——————————————« 

# Résumé des données
cd $FTP_FOLDER
echo « Serveur : $FTP_SERVER »
echo « User : $FTP_USER »

# Demande du mot de passe
echo -n « Password:  »
stty -echo
read FTP_PASSWORD ;
stty echo

# Lancement de la copie
echo « GO »
echo « Chargement du site en cours… » ;

ftp -vin $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD

binary

mput *

bye

EOF

echo « Fin du chargement. »

Ce n’est pas grand chose, mais c’est bien pratique 🙂

Publicités

Shell::Commande history

 Sous fedora cette commande retient les 1000 dernières lignes d’exécution du shell. Pour changer cette valeur il faut modifier la variable d’environement HISTSIZE dans le fichier /etc/profile :

HISTSIZE=100000

Une autre option très intéressante : $HISTTIMEFORMAT

Retrouvez plus d’info sur cette note : http://blog.uggy.org/post/2006/07/05/98-petits-trucs-pour-configurer-l-historique-du-bash

 Attention, un après usage de ces commandes, j’ai découvert que pour qu’elles soient effectives dans un terminal genre xterm il faut les placer dans le fichier ~/.bashrc, ça peut sembler normal … mais xterm ne récupère pas les infos dans profile. Peux être que ça ne me ferait pas de mal de relire le fonctionnement de tout cela ….

Bash::generateur de lettres aleatoires

Plus précisément, un générateur de ‘mot’ de n lettres. Je l’ai pondu pour obtenir une liste de mots aléatoires nécessaire à un projet.

Pour fonctionner il utilise principalement:
$RANDOM : renvoi un entier compris entre 0 et 32767
$(( EXPR )) : in interpréteur mathématique intégré au bash
${#VAR}: renvoi le nombre de caractères dans une chaîne bash (le length du bash)
${VAR:P:N} : renvoi une sous chaîne de la chaîne VAR qui commence au P ième caractère et de longueur N (substr du bash).

Il s’agit donc d’un petit concentré des essentiels du bash.

gen_word.sh [le nombre de lettres, 10 par défaut]

#!/bin/bash

N_LETTRES=10

if [ « $1 » != «  » ]
then
N_LETTRES=$1
fi

ALPHA=’abcdefghijklmnopqrstuvwxyz’;

MOT= » »
for ((i = 0; i < $N_LETTRES; i += 1))
do
CHIFFRE=$(( $RANDOM % ${#ALPHA}));
printf ${ALPHA:$CHIFFRE:1};
done
printf « \n »
exit 0

Mod : la commande exit permet de terminer le processus.

un exit 0 en fin de script c’est un fin de processus correct et des exit 1,2,3 etc… pour stopper le
script avec erreur.

BASH::connection SSH sans taper le mot de passe

C’est un probleme connu, à moins d’utiliser un certificat, il est difficile de se connecter en ssh sans taper le mot de passe.
Le blog que j’ai cité tout à l’heure a une solution :

expect -c ‘spawn ssh addrServeur cat /etc/passwd’ -c ‘expect password:’ -c ‘send P4ssw0Rd\n’ -c ‘expect eof’

Source : http://unixjunkie.blogspot.com/2006/01/two-cool-bash-tricks.html