Script pour mettre à jour un site FTP

Anne ftp

J’ai longtemps utilisé ce qui suit pour mettre à jour le contenu de mon vieux blog par FTP, mais il est probable que j’utiliserai plutôt rsync maintenant.

Mettre les informations de connection dans le fichier $HOME/.netrc, c’est-à-dire y ajouter une ligne :

machine home.tele2.fr login fr-00000 password mon-joli-pwd

On peut ensuite écrire un script :

#! /bin/sh
ftp <<**
open home.tele2.fr
cd html
put index.html
prompt
mput *.png
bye
**

L’utilisation de prompt permet d’utiliser mput sans avoir à confirmer le transfert pour chaque fichier. Du coup, on peut écrire un makefile pour transférer automatiquement tout ce qui a changé depuis le dernier transfert (la date est mémorisée dans la date de dernière modification du fichier transfert.ok) :

TOUS_FICHIERS=$(shell ls *.html *.css *.js *.png *.jpg *.gif)

all : $(HOME)/.netrc transfert.ok
        echo "Et voilà..."

toujours:

$(HOME)/.netrc :
	    (echo "machine $(ADRESSE) login $(LOGIN) password $(PSWD)") > $@
	    chmod 600 $@

cmd_ftp : $(TOUS_FICHIERS)
	    echo "Mise à jour de $@ : $?"
	    (echo "#! /bin/sh"; \
	     echo "ftp <<**"; \
	     echo "open $(ADRESSE)"; \
	     echo "cd html"; \
	     echo "prompt"; \
	     echo "mput $?"; \
	     echo "bye"; \
	     echo "**") \
	     > $@
	    chmod u+x $@

transfert.ok : cmd_ftp
	    echo "Transfert..."
	    ./cmd_ftp > /dev/null
	    touch $@

clean :
	    rm -f transfert.ok cmd_ftp

Voir aussi :

  • rien de plus sur ce sujet... Retournez à l'accueil ?