お問い合わせはコチラから

サイトのファイル一式をTARで固めてFTPでダウンロードする

サイト運営

サイト移転などで、ファイル一式ダウンロードしなければならない場面は結構あります。その時、SSHが使えると話が早いのですが、移転する場合は貧弱なサーバーからの移転が殆どですのでSSHは使えません。

そうなると、真面目にFTPでダウンロードするしかなくなり、実際やってみるとダウンロードに失敗したり、証明書がー、というダイアログが出たりして、途方に暮れるわけです。

この記事は、SSHが使えないサーバーで、サーバーのファイルをTARでまとめる方法についてご紹介します。

サーバーのファイル一式をzipで固める方法

phpでzipで固めるという記事を以前見かけました。実際、実行してみると正常終了しているようでしたが、zipファイルは出力されていませんでした。

出来るサイトは出来るけど、出来ないサイトは出来ない。phpのライブラリが対応していないのか、execコマンドがダメなのかわかりません。

貧弱なサーバーではそもそもサーバーの設定を変更できませんので、速攻で諦めて次に進みます。

ターミナルを疑似的に再現する

zipを直接作るやり方だと、上手くいかないとそれまで。

なので、ターミナルを再現する方法を調べました。

<?php
$command = "";
$commandResult = "";
if (isset($_POST['command']) && $_POST['command'] != "") {
    $command = $_POST['command'];
    $result = shell_exec($command);
    if ($result != null) {
        $commandResult = $result;
    } else {
        $commandResult = "実行結果はありません。。。";
    }
    $commandResult = "<div class='box'><pre>{$commandResult}</pre></div>";
}
$html = <<< EOM
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>オンラインたーみなる</title>
<style type="text/css">
<!--
#header {
    position:relative;
    margin:0 10px;
    padding:10px 10px 10px 30px;
    font:bold 22px/1.2 Arial, Helvetica, sans-serif;
    color:#666;
    text-align: center;
    background:#ccc;
    border-top:#ccc solid 1px;
    border-right:#999 solid 1px;
    border-bottom:#999 solid 1px;
    border-left:#ccc solid 1px;
    text-shadow:1px 1px 0 rgba(255,255,255,1);
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.5) inset;
    background-image: -webkit-gradient(linear, left top, left bottom,
            from(             rgba(220, 220, 220, 1.0)), 
            color-stop(0.25, rgba(240, 240, 240, 1.0)),
            color-stop(0.30, rgba(235, 235, 235, 1.0)),
            color-stop(0.36, rgba(240, 240, 240, 1.0)),
            color-stop(0.50, rgba(235, 235, 235, 1.0)),
            color-stop(0.80, rgba(215, 215, 215, 1.0)),
            to(                 rgba(210, 210, 210, 1.0))
            );
    background-image: -webkit-linear-gradient(top,
            rgba(220, 220, 220, 1.0), 
            rgba(240, 240, 240, 1.0) 25%,
            rgba(235, 235, 235, 1.0) 30%,
            rgba(240, 240, 240, 1.0) 36%,
            rgba(235, 235, 235, 1.0) 50%,
            rgba(215, 215, 215, 1.0) 80%,
            rgba(210, 210, 210, 1.0)
            );
    background-image: -moz-linear-gradient(top,
            rgba(220, 220, 220, 1.0), 
            rgba(240, 240, 240, 1.0) 25%,
            rgba(235, 235, 235, 1.0) 30%,
            rgba(240, 240, 240, 1.0) 36%,
            rgba(235, 235, 235, 1.0) 50%,
            rgba(215, 215, 215, 1.0) 80%,
            rgba(210, 210, 210, 1.0)
            );
    background-image: -o-linear-gradient(top,
            rgba(220, 220, 220, 1.0), 
            rgba(240, 240, 240, 1.0) 25%,
            rgba(235, 235, 235, 1.0) 30%,
            rgba(240, 240, 240, 1.0) 36%,
            rgba(235, 235, 235, 1.0) 50%,
            rgba(215, 215, 215, 1.0) 80%,
            rgba(210, 210, 210, 1.0)
            );
    background-image: linear-gradient(to bottom,
            rgba(220, 220, 220, 1.0), 
            rgba(240, 240, 240, 1.0) 25%,
            rgba(235, 235, 235, 1.0) 30%,
            rgba(240, 240, 240, 1.0) 36%,
            rgba(235, 235, 235, 1.0) 50%,
            rgba(215, 215, 215, 1.0) 80%,
            rgba(210, 210, 210, 1.0)
            );
}
#header:before {
    content:" ";
    position:absolute;
    top:0;
    left:15px;
    width:0;
    height:100%;
    border-left:#ccc solid 1px;
}
#header:after {
    content:" ";
    position:absolute;
    top:0;
    left:16px;
    width:0;
    height:100%;
    border-right:#eee solid 1px;
}
.cmd_input {
    position: relative;
    width: 90%;
    margin: 40px 3%;
}
.cmd_input input[type='text'] {
    font: 15px/24px sans-serif;
    box-sizing: border-box;
    width: 100%;
    letter-spacing: 1px;
    padding-left: 1em;
    color: #ffffff;
    background-color: #000000;
}
.cmd_input input[type='text']:focus {
    outline: none;
}
.effect {
    padding: 7px 14px;
    transition: 0.4s;
    border: 1px solid #000000;
    background: transparent;
    color: #ffffff;
    background-color: #000000;
}
.effect ~ .focus_line:before,
.effect ~ .focus_line:after {
    position: absolute;
    top: -1px;
    left: 50%;
    width: 0;
    height: 2px;
    content: '';
    transition: 0.4s;
    background-color: #00ff00;
}
.effect ~ .focus_line:after {
    top: auto;
    bottom: 0;
}
.effect ~ .focus_line i:before,
.effect ~ .focus_line i:after {
    position: absolute;
    top: 50%;
    left: 0;
    width: 2px;
    height: 0;
    content: '';
    transition: 0.6s;
    background-color: #00ff00;
}
.effect ~ .focus_line i:after {
    right: 0;
    left: auto;
}
.effect:focus ~ .focus_line:before,
.effect:focus ~ .focus_line:after,
.cmd_input.ef ~ .focus_line:before,
.cmd_input.ef ~ .focus_line:after {
    left: 0;
    width: 100%;
    transition: 0.4s;
}
.effect:focus ~ .focus_line i:before,
.effect:focus ~ .focus_line i:after,
.cmd_input.ef ~ .focus_line i:before,
.cmd_input.ef ~ .focus_line i:after {
    top: -1px;
    height: 100%;
    transition: 0.6s;
}
.effect ~ label {
    position: absolute;
    z-index: -1;
    top: 10px;
    left:30px;
    width: 100%;
    transition: 0.3s;
    letter-spacing: 0.5px;
    color: #00ff00;
}
.effect:focus ~ label,
.cmd_input.ef ~ label {
    font-size: 18px;
    top: -20px;
    left: 0;
    transition: 0.3s;
    color: #000000;
}
button.button {
    font-size: 1.0em;
    font-weight: bold;
    padding: 5px 15px;
    background-color: #c0c0c0;
    color: #191970;
    border: 2px solid #000000;
}

button.button:hover {
    background-color: #000000;
    color: #00ff00;
}
.box {
    padding: 8px 19px;
    margin: 2em 0;
    color: #2c2c2f;
    background: #cde4ff;
    border-top: solid 5px #00ff00;
    border-bottom: solid 5px #00ff00;
    background-color: #000000;
}
.box pre {
    margin: 0; 
    padding: 0;
    color: #ffffff;
}
footer {
    font-size: 80%;
    width: 99%;
    text-align: center;
    padding-top: 10px;
    padding-bottom: 10px;
    background-color: #313131;
    position: absolute;
    bottom: 0;
}
footer address {
    color: #ffffff;
    letter-spacing: 5px;
    font-style: normal;
}
-->
</style>
</head>
<body>
<header>
<h1 id="header">オンラインたーみなる</h1>
</header>
<form action="webconsole.php" method="post">
<div class="cmd_input">
<input class="effect" type="text" id="command" name="command" value="{$command}" placeholder="">
<label>コマンドを入力してください。</label>
<span class="focus_line"><i></i></span>
</div>
<center><button class="button" type="submit" value="実行">実行</button></center>
</form>
{$commandResult}
<footer>
<address>Copyright(C) Dsuke,Allright Reserved.</address>
</footer>
</body>
</html>
EOM;

echo $html;

ファイル名は、webconsole.phpじゃないと動かないです。

こちらは上手くいきました。

tar cvf Archive.tar ./*

このコマンドを実行すると、しばらく待たされたあとに、

実行結果はありません、的なメッセージがでますが、ファイルが出来ていますので、FTPでダウンロードします。

zipコマンドはサーバーの負荷が高くなるのでタイムアウトになるケースが多いですが、TARの場合は固めるだけなのでサーバーに蹴られるケースはほぼありません。

Lolipopでは、PHP5だと動きませんでした。PHP7.1以降にすると動きました。

WP Filemanagerを使う

WordPressのファイルマネージャーのプラグインには、tar圧縮する機能があります。

その機能を使うと、tarに簡単に圧縮することができますが、ファイル数が多いとタイムアウトしてしまうなど、サーバーに依存しているので使えるかどうかはケースバイケースです。

File Manager
ファイルマネージャでは、ファイルやフォルダの編集、削除、アップロード、ダウンロード、コピー、貼り付けを行うことができます。

FILE MANAGERの無料バージョンプラグインの主な機能

Key Features in the Free File Manager plugin include:
Operations: Various operations with files and folders on a remote server (copy, move, upload, create folder/file, rename, edit, delete, etc.)
Move/Copy: Admin can Move/Copy files with Drag & Drop. Also includes multi file selection.
Archives: Admin can create, archive and extract files(zip, rar, tar, gzip).
File Size: Admin/User can upload any size files.
File Type: Control what files can be uploaded and what file can be downloaded.
Code Editor: File Manager comes with a built in integrated development environment (IDE) – New Feature
Syntax Checker: File Manager now can complete code reviews before saving files to ensure your site will not go down when updating code. Reviewing code for errors has never been so easy! – New Feature
Multiple Themes: Multiple File Manager Themes Available – New Feature
Get Info: All file details, properties, information is now available by simply right clicking a file and selecting Get Info – New Feature
Share Files by Email: With File Manager you can easily and quickly share files by Email. Simply right click a file and press share, that’s it! – New Feature
Private Folder: Available only for File Manager Pro Edition
Shortcode: Available only for File Manager Pro Edition
Root Directory: Quickly and easily edit your root path directory. With this feature you can access files inside and outside of WordPress
PDF Support: Preview PDF files easily
Built-in Trash: Delete files by moving them to trash
File View: Icon and list view both available for easy navigation
Preview Support: Easily preview common file types including media (video, audio, mp3, thumbnails, etc)
Search: Search functionality is built directly into File Manager making it simple to find your files.
Shortcut Support: Common shortcuts are available in File Manager
Automatic File Resize: automatically resize files once uploaded.
Responsive UI: File Manager works on tablet and mobile devices
Browsing History: File and folders browsing history
Trash function: Move to Trash Folder Feature
PDF Preview: PDF Preview feature available
FTP/SFTP Support: Alternative to FTP or Cpanel
File Preview: preview for common MIMEs and file types
Directory Size: Calculate directory size
Icon View: List and Icons view available for files and files
Keyboard shortcuts: Keyboard shortcuts available e.g. copy,paste,drag & drop
Drag and drop: File Drag & Drop file upload function available
Functions Toolbar: Rich context menu and file manager functions toolbar
Thumbnails: Thumbnails for all types of image files
Upload to Media Library: We have now included the ability to enable images, pdf’s, and zip files to be uploaded to you folders and as well be available via the native WordPress Media Library
Backup/Restore: Backup and restore themes files, plugins files,uploads folder and db data on server.
Multi Languages Added

まとめ

サーバーを移転する時にFTPで簡単にダウンロードできるような強力なサーバーから移転するケースは少なく、貧弱なサーバーでいかに効率よくダウンロードするかというのが最初の壁として立ちはだかります。

そんな時には、この記事を思い出して欲しい。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

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