2018年3月15日ownCloudサーバ側でファイルを追加するに書いたように、ownCloudを導入した目的の一つは、サーバ内にあるプロジェクトファイルやmysqlデータベースを自動でバックアップすることである。file:scanを忘れずに)。あとは、昼間の間にゆっくりローカルPC(複数)にそのバックアップを取得すればよい。ここでのお題としては、以下。ある特定のディレクトリ以下をtazにまとめてバックアップする。変更があった場合のみ。あるmysqlデータベースをmysqldumpでダンプし、gzに圧縮してバックアップする。変更があった場合のみ。最初はシェルスクリプトで行おうとも思ったのだが、そもそもif文さえろくに使ったことの無い状態なので、groovyを使ってみることにした。gradleは使っているが、生のgroovyは初めてである。Javaはインストール済であり、CentOS-6.9へのgroovyのインストールは割愛する。検索すればいくらでも見つかる。最終的にはcronで動作させるのだが、groovyの実行にはJAVA_HOMEの設定が必要とのことで、以下のようにした。方法はあるようだが、これが最も簡単に思われる。※sdkmanでgroovyをインストールした場合には、.bashrcの記述のようにsdkmanの初期化をしないといけない。以下はrootでsdkmanをインストールした場合の例。username最後の行はownCloudに対してファイルが変更されたことを通知する。mysqlのバックアップmysqlのバックアップとしては、単純にmysqldumpを使用してバックアップを取り、以前バックアップしたものと異なるかどうかを調べるしかないように思える。ここでハマったのは、mysqldumpのフラグを使用しなければならないこと。–skip-dump-dateをつけないと、ダンプ日時が入ってしまうため、必ず「異なってしまう」。ダンプ後のファイルをgzipで圧縮しているのだが、(どういう理由かわからないのだが)全く同じファイルをgzip圧縮してもcmpで比較すると異なってしまう。これは、cmpではなくzcmpを使用することで回避できた。コードは以下のようなものである。}}allDatabases()ディレクトリのバックアップ例えば、/var/git、/var/svnには複数のリポジトリがあり、/var/www/sitesには複数のサイトの、主にwordpress環境が格納されている。これらをそれぞれtazの形にしてバックアップする。ここで行っていることはmysqlの場合とは少々異なる。-lR」によって、そのディレクトリの構造すべてをリストしておく。中身を比較するのではなく、このリストを比較すれば十分だから、その分少しは高速になるだろう。ysugimura関連記事Java9モジュールシステム概要Java9から導入されたモジュールシステムについてわかりやすく説明してみる。...形態要素解析器Sudachiを単体で使ってみるSudachiを単体で、フル辞書で使ってみた。...GWTでWebSocketsを使うGWTアプリ上でWebSocketsを使う。...nagios自体を監視するnagiosについての全投稿は/tag/nagiosにあるので参照されたい。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト上に表示された文字を入力してください。