とあるサーバーのファイル(フォルダ)を
・クラウド上に残したい
・過去のバージョンを残したい
という願望があったので、どうにかできないかとやってみます。
環境はUbuntu 20.04.2 LTS
zip のインストール
sudo apt install zip
rclone のインストール
まずは「rclone」コマンドをインストールします。
このコマンドでGoogleドライブとの接続を行います。
Googleドライブ以外にも様々なオンラインストレージに接続できる超有能コマンドです。
参考:https://www.nextdoorwith.info/wp/se/how-to-control-google-drive-from-linux-rclone/
apt install -y rclone
接続先の登録
rclone config
n/s/q> n(”New remote”を選択)
name> gd(任意の接続先名、コマンド実行時の接続先指定で使用)
Storage> drive(”Google Drive”を選択)
client_id> (未指定)(rcloneの既定のクライアントIDを使用)
client_secret> (未指定)(rcloneの既定のシークレットを使用)
scope> 1(フルアクセス権限)
root_folder_id> (未指定)(接続時の既定のフォルダ)
service_account_file> (未指定)
y/n> n(advanced configは不要)
y/n> n(auto configは行わない)
Please go to the following link: https://…(別途ブラウザで開いて認証を進める)
Enter verification code> xxxxx(ブラウザに表示されたコードを張り付け)
y/n> n(共有フォルダは構成しない)
y/e/d> y(設定を保存)
e/n/d/r/c/s/q> q(設定の終了)
動作確認
ーーGoogleドライブのマイドライブ直下のディレクトリを取得するコマンドです
rclone lsd gd:
ーーGoogleドライブにファイルをコピーしてみます。
touch uploadtest.txt
rclone copy ./uploadtest.txt gd:test/uploadtest
rclone copy <コピー元ファイル> gd:<コピー先フォルダ>
ブラウザ上でGoogleドライブを確認すると
保存されているのが確認できます。
存在しないフォルダを指定した場合は自動で作成されます。
cron のインストール
参考:https://www.kagoya.jp/howto/it-glossary/server/cron/
apt install -y cron
サービスを確認して、停止していたら起動します。
service cron status
service cron start
設定を更新します。
crontab -e
nanoエディタが気にくわない場合は、以下のコマンドで「/usr/bin/vim.basic」を選択することで、
viエディタに切り替えることができます。
select-editor
ファイル末尾に以下のコマンドを記述します。
※ファイルパスは適宜変更してください。
※長いけど一行でまとめましょう。(複数行にまたがると順番が狂う可能性があります)
※cdコマンドを使用して相対パスを指定する方法もありますが、-Cオプションを利用して絶対パスを指定しています。
※最後に対象ファイルを消すコマンドを入れてローカルから削除しているので注意。
59 */6 * * * zip -jr /home/ubuntu/archive/logfile_$(date +\%Y\%m\%d_\%H\%M\%S).zip /home/ubuntu/logfile ; rclone copy /home/ubuntu/archive/ gd:/test/logfiles/ ; rm -f /home/ubuntu/logfile/*
59 */6 * * * zip -jr <圧縮後ファイル名(パス)> <圧縮対象フォルダ> ; rclone copy <圧縮後ファイル格納フォルダパス> gd:<Googleドライブの保存先※マイドライブ直下は「/」) ; rm -f <圧縮後ファイル格納フォルダパス>/*
ファイルを保存すればあとは自動で設定が適応されます。
上記コマンドでは6時間おきに実行するように設定しています。
cronコマンドの設定方法については調べれば出てきます。
こちらのサイトとか分かりやすかったです。
https://ex1.m-yabe.com/archives/3113
コメント