Script Bash pour chargement FTP
octobre 22, 2008
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
Shell::Commande history
novembre 10, 2007
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
novembre 5, 2007
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
juillet 24, 2007
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
LIEN::Deux astuces Bash tirées d’un super blog !!
juillet 24, 2007
Voici juste un avant gout :
exec 5<> /dev/tcp/www.google.com/80 printf "GET / HTTP/1.0\n\n" >&5 cat <&5 exec 5>&-
et
diff <(find dir1) <(find dir2)
le blog :
http://unixjunkie.blogspot.com/
la page en question :
http://unixjunkie.blogspot.com/2006/01/two-cool-bash-tricks.html
Je conseil surtout la lecture des commentaires !!