2009-07-29 8 views
1

Je commence à écrire un script (sophistiqué) de distribution FTP, mais j'ai pensé: ça ne peut pas être! Je réinvente la roue! Distribuer de manière fiable des fichiers à des serveurs distants dans des conditions contrôlées à partir d'un emplacement central est une tâche aussi ancienne que celle des ordinateurs, bon sang!Script de distribution FTP

S'il vous plaît, quelqu'un me prouve qu'il a raison.

La recherche Google sur ce sujet est tellement brisée par le monde Linux sur-utilisation du mot "distribution".

Aussi, Je sais tout sur rsync et rdist. Ici, je suis contraint de FTP, alors s'il vous plaît ne suggère pas ceux-ci.

Juste pour montrer ce dont je parle, voici l'en-tête de mon (vide) script:

# Example usage: FTPdist.ksh --simulate -l /tmp/Script.sh -r $BIBSH_DIR -d dune,camel -p dgft4sG55 -e expNoob -o itg:itg -c 555 
# 
# usage: FTPdist.ksh <-l local_file1[,lf2,..]> <-r remote_path> <-d remote_srv1[,remote_srv2,..]> [-t trace_file]\ 
#    <-p FTP_passwd> [-u FTP_login] [-e ext] [-n] [-o owner[:group]] [-c mode] [-g] [-q] [-v [verbosity_level]] 
# or: FTPdist.ksh <-f instructions_file> [-n] [-t trace_file] <-p FTP_passwd> [-u FTP_login] [-e ext] 
#    [-o owner[:group]] [-c mode] [-g] [-q] [-v [verbosity_level]] 
# 
# By default, FTP_login is "root". 
# -n: do a simulation run to see if any FTP/login/rights problems exist. 
# 
# Distribute <local_file> to all <remote_srvs> using FTP. Target location on remote servers: <remote_path>. 
# If a file already exists on remote server, rename it first with date extension + .[ext]. 
# By default, ownership is preserved. If -o option is provided, ownership will be given to argument. 
# This script is meant to connect as root . If you're not using root FTP login, make sure you have 
# enough privileges on remote servers/files (do a simulation first with -n). 
# If -c option is used, a chmod is performed on the remote file. 
+0

Si vous avez un accès ssh aux serveurs, j'essaierais d'utiliser rsync, ce qui est beaucoup plus approprié pour cette tâche. – OneOfOne

+2

ok, alors quel est votre problème à nouveau? – ghostdog74

Répondre

2

Vous trouverez peut-être lftp pour être utile. Il est installé par défaut dans de nombreuses distributions et offre des fonctionnalités assez sophistiquées.

+0

Je recommanderais aussi lftp sur ncftp - les deux sont très bien, mais lftp a tendance à être plus répandu sur Linux. (Par exemple, c'est dans Ubuntu Main plutôt que Univers.) – alberge

+0

Lftp semble vraiment délicieux, merci! J'espère seulement qu'il est disponible sur les serveurs de mon entreprise Unix. Je vais devoir vérifier ce lundi. – ExpertNoob1

0

Si on m'avait donné cette tâche, j'utiliserais Expect, AFAIK est disponible sur la plupart des unix, pré-installé sur linux.