質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Server+

Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Q&A

解決済

1回答

12834閲覧

サーバー上の任意のファイルを、既存のファイル名に変更(上書き)したい。

ikki57

総合スコア290

Server+

Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

0グッド

0クリップ

投稿2016/02/16 06:16

したいこと

サーバー上の任意のファイルを、既存のファイル名に変更(上書き)したい。

・どうすれば上記を解決できるか。
・FTPのサブコマンドを利用してより安全にファイル転送
http://d.hatena.ne.jp/moto0215/20090521/1242889664
上記で解決できそうだがこれで良いか。
・コマンドラインでの操作ではなく、FTPツール上での実現は可能か。

document rootに下記2ファイルがあるとする。
・index.html
・hoge.html
ここで、hoge.htmlをindex.htmlに変更する
その結果
・index.html
のみになる。

背景

直接index.htmlをuploadすると、転送時エラーが発生した場合、ファイルの欠如等によりサイト上で障害が発生する。
それを防ぐために、一時的に別名でファイルをuploadし、そのファイルが正しくuploadされたら、本番の名称に変更する(ここでは転送は発生しない)、というフローにしたい。

以上になります。
どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2016/02/16 06:42

何が問題なのでしょうか? 「一時的に別名でファイルをuploadし、そのファイルが正しくuploadされたら、本番の名称に変更する」という手順で正しいと思うのですが。
ikki57

2016/02/16 07:13

>そのファイルが正しくuploadされたら、本番の名称に変更する それは手動で行うのでしょうか? それともFTPコマンドで行うのでしょうか? 前者の場合、index.htmlを一時的に削除し、その後、hoge.htmlをindex.htmlに変更することになると思います。一時的にindex.htmlがsever上から無くなる為、その間にアクセスしたユーザーには404になります。それを避けたいと考えています。 後者である場合は問題ないと思いますが、質問に記載した通り「FTPツール上での実現は可能か」を知りたく、調査中の段階です。
coco_bauer

2016/02/16 08:24

1つのディレクトリ(フォルダ)に同時に2つのindex.htmlを存在させることは出来ませんから、古いindex.htmlを削除してから、新しいファイルの名前をindex.htmlに変更するまでの間はindex.htmlというファイルが存在しない事になります。FTPコマンドのファイルを用意して、それをftpクライアント(FTPソフト)で実行するれば、手でコマンドを入力するよりもindex.htmlファイルが無い時間を短くできると思います。
ikki57

2016/02/16 09:14

>FTPコマンドのファイルを用意して、それをftpクライアント(FTPソフト)で実行するれば、 そうですね。仰る通りかと思います。
ikki57

2016/02/16 09:16

>手でコマンドを入力するよりもindex.htmlファイルが無い時間を短くできる なるほどです。あくまで手動よりも時間を短くできる、ということなんですね。情報ありがとうございます。
guest

回答1

0

ベストアンサー

FTPにてリモートファイルの「ファイル名変更」は可能です。
コマンドラインだと rename コマンドが使えますし、GUIのFTPクライアントソフトでも大抵は対応していると思います。

ただし、あくまでもファイル名変更であり、既存ファイルへの上書きでは無いので、既存ファイルを一旦削除してから実行する必要があり、アクセス不可の時間を完全にゼロにする事は出来ないはずです。

もちろん、対象ファイルのサイズが大きいとかネットワーク回線が細い場合には、このやり方でも一定の効果は有ると思いますが。

とは言え、変更内容にも依りますが、アクセス中にファイルが差し替わると処理が中途半端になって不都合の生じる場合もありますので、サービスの品質を気にするならば、通常はアクセスの少ない時間帯にサービスを閉塞してからリリースするべきだと思います。

もしサービスの性質上、一瞬たりとも止められないのであれば、当然の事としてサーバーも冗長化されているはずなので、一部を止めて縮退運転しながら五月雨式にリリースするなど幾つかの方式が考えられます。

要するに、高いサービスレベルを維持するには、本番環境へのリリース運用や仕組みを予め本気で『設計』すべきなのであって、FTPコマンドを使い小手先の対応で何とか出来る範囲のサービスレベルは、やはりそれなりのレベルでしかないと言うことだと思います。

投稿2016/02/16 08:12

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問