🦔

コマンドラインからftpサーバーにファイルをアップロードする

2022/08/08に公開

商品データCSVを生成してFTPサーバにアップロードする、という機能をつくることになったので
ファイルアップロード機能についていろいろ調べました。

最終的には

  • 商品CSVを出力するphpを呼ぶ
  • 出力したCSVはとりあえずバックアップをつくる
  • 出力したCSVをftpサーバにアップロードする
  • 出力したCSVを消す

という内容のシェルスクリプトを作成しました。

コマンドラインからのファイルアップロードが勉強になったので
以下にアップロード方法を記録します。

コマンドでアップロードする

コマンドでファイルをアップロードする場合、ftpコマンドかcurlコマンドを使うことになる

ftpコマンド

ftpコマンドでアップロードを試みる場合、
ftpコマンドでいったんサーバに入ったのち、putコマンドでファイルをアップロードする
ちなみにftpサーバから抜ける場合はclose(切断)かexit’(ftpモード自体をやめる)を入力する。

$ ftp
ftp> open {ホスト名}
Name (****:*****): {ユーザ名}
Password: {パスワード}
/* これで接続完了 */

ftp> put {送りたいファイルパス}

参考: ftpコマンドについて詳しくまとめました 【Linuxコマンド集】

curlコマンド

最初、ftpコマンドでファイルアップロードしようと考えていたが
curlコマンドのほうがはるかに簡単だった。1文でおわる。

$ curl -T {アップロードファイルパス} -u {ユーザー名}:{パスワード} ftp://{ホスト名}/{任意のアップロード先ディレクトリ}

参考: 【curl】ファイルのダウンロードやアップロードを行う

Discussion