linux – コマンドラインからFTPで1つのファイルをアップロードする方法は?

ftp linux ubuntu

私はUbuntuからFTPサーバーに単一のファイルをアップロードする必要があります。この操作はスクリプト(非インタラクティブモード)で行う必要があります。ftpの正しい構文は何ですか?

試しているのですが、効果がありません

$ ftp -u ftp://user:secret@ftp.example.com my-local-file.txt
ftp: Invalid URL `ftp://'

  122  yegor256  2011-08-15


ベストアンサー

ここに一つのアプローチがあります

$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF

あるいは、ftpコマンドを実行するユーザのホームディレクトリに ~/.netrcファイルを作成(または編集)し、適切なperms(chmod 0600 ~/.netrc)を与えて、以下のように追加します

# ~/.netrc
machine ftp.example.com
login user
password secret

のようにログイン情報を省略します

$ echo put my-local-file.txt | ftp ftp.example.com

また、curlを使って同じことをするかもしれない方法はこちらです

$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret

203  Marty  2011-08-15


私はftp-uploadをお勧めします。それは、sudo apt-get install ftp-uploadを介してubuntuの下にインストールすることができるきちんとした小さなツールです

Usage example:

ftp-upload -h {HOST} -u {USERNAME} --password {PASSWORD} -d {SERVER_DIRECTORY} {FILE_TO_UPLOAD}

19  Floris  2015-01-27


ステートメントで指定されたURLを修正する必要があります。このエラーが発生したのは、URLが不完全で、アップロードするオブジェクトの名前が不足していたためです。下記のように’example.com’の後にファイル名を追加すると、単一のコマンドが意図した通りに動作していることがわかります

Try this:

ftp -u ftp://user:secret@ftp.example.com/my-local-file.txt my-local-file.txt

5  Paul  2011-12-02


lftpも試してみてください

ここでは一例を紹介します

lftp -e 'cd folder1/folder2; put /home/path/yourfile.tar; bye' -u user,password ftp.theserver.com

詳細はこちらをご覧ください

.

5  divinedragon  2013-01-10


ncftp をインストールし、付属の ncftpput ツールを使用します

ncftpput -u ftpuser -p ftppass ftphostname /path/where/to/upload localfile.name
if [ $? -ne 0 ]; then echo "Upload failed"; fi

アップロード状況の良し悪しも確認できます。通常のFTPクライアントもexpectと一緒に使えます

4  O G  2011-08-15


コマンドラインを使ってファイルを遠隔地にアップロードします

#!/bin/bash
#$1 is the file name
#usage:this_script <filename>
HOST='yourhost'
USER="youruser"
PASSWD="pass"
FILE="abc.php"
REMOTEPATH='/html'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
put $FILE
quit
END_SCRIPT
exit 0

2  Shal  2015-04-29


私はBusyBoxのftpputを使っています

# /bin/busybox ftpput

BusyBox v1.20.2 (Debian 1:1.20.0-7) multi-call binary.

Usage: ftpput [OPTIONS] HOST [REMOTE_FILE] LOCAL_FILE

Upload a file to a FTP server

-v,--verbose            Verbose
-u,--username USER      Username
-p,--password PASS      Password
-P,--port NUM           Port

注:busybox ftpgetもよく効きます

1  Naskel  2015-02-16


私は以下のようなマーティの答えを改善しました(バイナリを含む)

[ftp_example_1.sh]

ftp_example_sh.sh dump_file

ftp -n <<EOF
open 192.168.0.10
user anonymous aaa
binary
put $1
EOF

[ftp_example_2.sh]

ftp_example_2.sh 192.168.0.10 dump_file

ftp -n <<EOF
open $1
user anonymous aaa
binary
put $2
EOF

0  sailfish009  2017-07-31


sftp や ftp コマンドを使うこともできます

sftp {user}@{IP} Password: put {path To File On Local Computer}

-1  iProgram  2015-02-16


FtpPut(){
echo `echo -e "open host\nuser user pass\nbinary\nput $1\nquit"|ftp -nv`
}
FtpPut asd.txt
FtpPut asd.mp4
FtpPut asd.php
...

-1  Yöncü Bilişim Çözümleri  2017-08-25


タイトルとURLをコピーしました