Voici ce que je fais lorsque je me connecte à un FTP:
ftp user:password@server
ftp: user:password@server: Unknown host
ftp> echo HELLO WORLD!
ftp> quit
Je voudrais faire une commande FTP sur une ligne ...
ftp user:password@server -command "echo HELLO WORLD"
ou
"echo HELLO WORLD" | ftp user:password@server
Quelque chose de similaire ... dans le cadre d'un script que j'essaie de créer. Rien n'est transféré, j'ai juste besoin de faire écho à quelques instructions et c'est la manière la plus simple que j'ai trouvée de le faire entre deux de mes systèmes.
10.10
command-line
ftp
pipe
WernerCD
la source
la source
nick@AccessDenied:~$ ftp ftp> echo "hi" ?Invalid command ftp>
ftp
n'a pas deecho
commande.lftp
le fait, mais c'est purement local, donc je ne vois pas pourquoi vous voudriez le faire par lui-même ....Réponses:
C'est vraiment plus un travail pour SSH (comme d'autres l'ont souligné), mais si vous êtes déterminé à utiliser ftp, essayez lftp . Il est disponible gratuitement pour toutes les versions actuellement prises en charge d'Ubuntu. Vous pouvez l'installer avec la commande
sudo apt install lftp
lftp documente un
-c
commutateur qui exécute la commande, puis se ferme, mais il semble être rompu dans la plupart des distributions.-e
vous gardera connecté sauf si vous émettez unquit
.la source
-c
fonctionne bien pour moi sur Ubuntu.~/.netrc
et de vous assurer que c'est le mode0600
. FTP peut négocier des mots de passe en texte brut sur le câble.J'ai trouvé ce fil lorsque je cherchais un moyen pour qu'une seule commande ftp exécute un transfert de fichiers de cette machine vers le serveur ftp. Voici comment:
Créez un fichier contenant les commandes ftp: (appelez-le 'ftpcommands.txt')
Exécutez ensuite la commande ftp et insérez-y le fichier:
L'option -n empêche ftp d'essayer de se connecter automatiquement lorsqu'il reçoit votre commande «open».
J'espère que cela aide quelqu'un. Je n'ai rien trouvé en ligne qui soit cette solution, j'ai donc dû le découvrir moi-même.
la source
Vous ne pouvez pas utiliser FTP pour exécuter des commandes à distance. Il signifie File Transfer Protocol. Ce dont vous avez réellement besoin est SSH.
Tout ce que vous devez faire est d'installer le package
ssh
sur les deux machines, puis suivez ce guide pour configurer des connexions sans mot de passe.Et maintenant comment l'appeler:
ssh username@host echo "Hello World\!"
Par exemple, c'est moi qui me le fais:
la source
En complément de la réponse @charlesbridge, incluez dans votre fichier ~ / .bashrc les éléments suivants:
Sourcez le fichier:
Utilisez maintenant l'alias "yoursite" pour vous connecter et exécuter autant de commandes que vous le souhaitez.
la source
Installez busybox en utilisant:
busybox peut fonctionner sur Linux ou sur un système intégré à la fois, puis utiliser ftpget et ftpput
la source