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 ….

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.

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

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 !!