Server

【さくらのクラウド】ubuntuサーバー(FileMaker Server)からlftpでレンタルサーバーへファイルバックアップ

やりたい事

さくらのクラウドにUbuntuで構築したFileMakerのファイルを別サーバーにFTP転送してバックアップしたい。

 

レンタルサーバーにFTPアカウントを発行

自分が利用しているHetemlレンタルサーバーは、200GBの容量があるので、バックアップ先としても利用しています。

Heteml

FTPでログインすると、ログインフォルダにダイレクト接続になるので便利です。

いちおう、WinSCP(FTPクライアント)で接続試験をしておきました。

 

ubuntuにlftpをインストール

インストールは、ほんの数秒で終わりました。

sudo apt install lftp

 

転送スクリプトをBingAIで作成

今回は、FileMakerServerのデータベースをバックアップが目的なので、BingAIから転送用スクリプトを質問しました。

ココがおすすめ

最近はサイト検索するよりも、ChatGPTや、BingAIチャットから調べたほうが早いです。

lftp転送スクリプト

 

スクリプトを作成するだけでもひと苦労

普段はWindowsしか使わないので、Linuxの仕組みがよくわかってないので、スクリプトを作成するだけでもひと苦労です。

そして、まず、そのスクリプトは、どこに置けばいいのか?と言う旅から始まりました。

Qiitaにて、参考になるサイトがあったので、/usr/binに置くことにしました。

まずは、「vi fmsftp.sh」にてviエディターにて新規スクリプトファイルを作成しました。

いつもながら、viエディターの使い方は難しいです。

Linux viエディターの使い方【viコマンド集】

 

なんとか、viエディターを使ってコードを入力しましたが、

ココに注意

:wqでやるとエラーが出て保存されません。

 

ネット検索して、強制保存する方法というのがあり、下のコマンドを入れました。

:w !sudo tee % > /dev/null

なんだか保存されたかわからないので、再びviで開いてみると保存されていました。

しかし、編集後に保存ができません。

確実に権限の問題と判断できましたので、下記のコマンドを実行しました。

ubuntu権限変更

root権限から、ubuntuに変更しました。

sudo chmod u+w fmsftp.sh

などもやり権限を変更しました。

そうると、編集もできるし、実行もできるようになりました。

 

スクリプトエラーに泣かされる

スクリプトを実行すると、フォルダー関係のエラーがでました。

DIR='/opt/FileMaker/FileMaker Server/Data/Databases/'

この部分の記述が違うようです。

そして、これに気づくまで無駄な時間が経過してようやくわかった事が、

ココがポイント

フォルダー名にスペースがある場合は、カンマ(ダブルカンマでも行けるようです。)で囲む

DIR='/opt/FileMaker/'FileMaker Server'/Data/Databases/'

これでエラーが解消されましたが、対象フォルダ内のファイルが転送されないで変なファイルが転送されるようになりました。

 

これに気づくまでにも時間を要しました。

ココに注意

cdは、接続先のほうで、lcdが接続元のフォルダになる

 

今回の自分の環境は、接続先のレンタルサーバーでは、接続すると指定されたフォルダしか開かないので特に設定は必要ありません。

むしろ、接続元のubuntuのフォルダー指定をしなければならないのですが、lcdというのを気づくのが大変でした。

結果、うまく行ったスクリプトは下記のようになりました。

#!/bin/bash

HOST='ftp.example.com'
USER='yourusername'
PASSWD='yourpassword'
DIR='/opt/FileMaker/'FileMaker Server'/Data/Databases/'

lftp -u $USER,$PASSWD $HOST << EOF
lcd $DIR
mput *.fmp12
EOF

 

これで、ファイルメーカーのデータベースファイルを別サーバーに転送することができるようになりました。

 

スクリプトを定期実行

せっかくスクリプトを作成しても手動だと意味がありません。

ubuntuにて、crontabの設定方法を参考に実行してみました。

ちなみに、crontabの編集モードに入ると、3種類のエディター選択になりますが、自分は、vim(viに似ている)を選択して下記のコードを追加しました。

定期実行

毎日、23時59分に定期実行して、別サーバーに転送するようにしました。

明日にでもバックアップができているか確認してみたいと思います。

 

FileMaker Serverのバックアップ

FileMaker Serverのバックアップは、サーバーの方で、7日間自動バックアップされています。

FileMakerServerバックアップ

 

それなら、わざわざ外部サーバーにバックアップする必要ないんじゃないの?

ココに注意

サーバー自体が死んじゃったら、どうやってデータを復活させればいいんだ!?

 

そういう訳で、せめて毎日の作業終了時点のファイルだけでもあれば、最新版のデータベースが復活させることができますので、外部サーバーにファイル転送してバックアップする方法を考えた訳です。

もちろん、クラウドサーバーじゃなくて、自前のサーバーとかなら、外付けHDDなど接続して、バックアップが可能ですけどね。

 

-Server
-, , , , , , , ,

Translate »

© 2024 PCTips