MySQLのバックアップやで

#! /bin/sh

TODAY=`date '+%F'`
/usr/bin/mysqldump --single-transaction -u root --password="パスワードやで" --all-databases | gzip > /mysql_backup/$TODAY.sql.gz
echo "SHOW DATABASES;" > /mysql_backup/show_databases.sql
/usr/bin/mysql -u root --password="パスワードやで" < /mysql_backup/show_databases.sql > /mysql_backup/target_db_list.csv
echo "`cat /mysql_backup/target_db_list.csv`" | mail -s "件名やで" hoge@gmail.com
exit 0
  • “date ‘+%F'” : yyyy-mm-dd
  • “–single-transaction” : トランザクションを利用し、バックアップ開始~終了時点におけるデータの整合性を保つ
  • “gzip” : 圧縮やで

phpMyAdminにログインできなった件

外部から接続してphpMyAdminのログイン画面を確認することはできるけど、ログインしてもエラーメッセージもなくログイン画面が再度表示されてしまう。

結論として、phpMyAdminが入ってるサーバのディスク容量を

$ df -h

で確認したところディス容量が限界を迎えていて、

$ cat /etc/php.ini | grep "session.save_path"
session.save_path = "/var/lib/php/session"
$ ls -al /var/lib/php/session

“/var/lib/php/session/”以下にセッションファイルを書き出せなかったことが原因でした。

適当なバックアップファイルをいくつかgzipで圧縮し、ディスク容量を開けることでとりあえず解決しました。

※”gzip file”すると”file.gzip”が作成され”file”は消える。解凍するときは”gunzip file.gzip”

※まずはsessionディレクトリのパーミッションを疑ったけど今回は違うかったなぁ

君の膵臓をたべたい

本日、映画「君の膵臓をたべたい」のDVDをレンタルし観ました。

内容構成もよく、登場人物の配役が非常にマッチングしていることも

あり最後の最後まで透明感を維持したまま描かれているため

非常によかったです。

特にヒロインは浜辺美波でしか描けなかった世界観を醸し出して

いました。特に旅行の部分はあんなにもピュアに透明感を

維持したまま描けるのか、と心底、制作陣に感激しました。

 

(小説なんかもそうですが、何が原作になっていようとも)

特に映画なんていうのは、作り手の願望みたいなものが

詰まっていると思うんですよ。

純粋に考えたら余命いくばくもない子が、あんなに元気に

走り回ってニコニコしているわけがないのですけど

あんなニコニコしている人と楽しくこういう青春時代を

過ごしてみたかったなぁという作り手の願望が

出ている所が多数あるんじゃないかぁと思って

観ていました。というか普通でもあんなに

明るい人っていないんじゃないかなぁと思います 笑

 

思うのですが、映画というのはやはり漫画の原作よりも小説が

原作の方が良い世界観を描けているものが多い気がします。

漫画もそれはそれで良いのですがコメディになり過ぎていたり、

ありえない設定過ぎたりする部分があるのかなぁなんて思います。

ん〜歳を取ったせいもあるのでしょうが、

所謂、変化のない(中高くらいの)学園モノの漫画原作の

惚れた腫れたの作品はあまり好きになれません、

少し前まではよかったのですが…

 

例えばコミックでも「海街ダイアリー」なんかは学園ものでは

ないし、映画にしたときに映像美にこだわっているので

まだ良いのですが、所謂壁ドンか顎クイとか入る、

いかにも「少女漫画原作を元に作りました」というのは

もう年齢的にきついというか響かないですね 笑

 

それよりも、「君の膵臓をたべたい」もそうですが、

主人公が時を経て、少し大人になった部分も描かれてたり、

「植物図鑑」や「レインツリーの国」のように、社会人に

なって、それぞれそれなりの悩みや葛藤を持つ

日常をおくりながらの中にある物語を描いている

作品の方が好きです。

 

いずれにせよ、内容と「透明感or映像美」のある作品が

好きです。

私自身も結婚式の映像なんかを作らしてもらうことも

あるのですが、最近では自然の中の美しさや光の入り方など

映像美は結構意識しています。

それはやはり自分自身が観た映画に影響されている部分も

あるのだと思います。

 

これからも沢山、質の良い映画を観て色々吸収したいですね。

 

透明感のあるピュアな作品があれば教えていただけると幸いです。

 

 

モナコインを掘る

マイニングしてみたかったので、してみたかったので掘ってみました!

この方の記事に沿って掘るとこまでいけた。

つまったところと言えば、VIP Poolに登録する際に必要となるMonacoinアドレスがウォレットの何処で確認できるか探したところ

「Monacoin Core – ウォレット -> 入金 -> 支払いをリクエストする -> アドレス」から確認できた。

既存のハンドラーマッピングを削除してから同名の新たなハンドラーを追加

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <handlers>
            <remove name="PHP via FastCGI" />
            <add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.6\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

Postfixメールログの調査手順

$ su
$ cd /va/log
$ cat maillog | grep "from=<hoge@gmail.com>"
# Apr 18 15:42:37 server postfix/qmgr[1513]: 11111111111: from=<hoge@gmail.com>, size=132527, nrcpt=1 (queue active)
# Apr 18 15:50:02 server postfix/qmgr[1513]: 22222222222: from=<hoge@gmail.com>, size=74720, nrcpt=1 (queue active)
# Apr 18 15:53:15 server postfix/qmgr[1513]: 33333333333: from=<hoge@gmail.com>, size=25568, nrcpt=1 (queue active)
$ cat maillog | grep " 22222222222: " # キューIDが"22222222222"であるプロセスに絞り込んで"status=X"を確認
  • status=sent : 配送OK
  • status=bounce : 配送NG
  • status=deferred : 一時的に配送できなかったがリトライ

参考にしたのはこちら

dllのPublicKeyTokenを調べる

web.configにて、assemblyにdllを追加するときに、PublicKeyTokenが必要になったときに、調べるとsn.exeを使えば良いという記事にあたったけど、Visual Studioに同梱されているということで、そんな大きいものを落としている時間も容量もないということで、さらに調べるとPowerShellでいけることが判明した。

([system.reflection.assembly]::loadfile("C:\MyDLL.dll")).FullName

PublicKeyTokenを知りたいdllの絶対パスをloadfile()に渡せばOK

PHP 5.6からMicrosoft SQL Serverにアクセスしようとドライバーを入れた話

Windows Server 2016上にインストールされたPHP 5.6の64bit版から、Microsoft SQL Serverに接続しようとドライバーを入れたけど、IISマネージャーから当該のアプリケーションプールを再起動しても、ドライバーを認識してくれなかった。(phpinfo()で”pdo_sqlsrv”がないことを確認)

結果として、PHP 5.6以前のバージョンに対応したドライバーは、32bit版のPHPにしか対応していないことが原因だった。

諸事情で、PHP 7.xに切り替えて、64bit版のドライバーを使用することはできなかったので、

32bit版のPHP 5.6をインストールし、web.configに下記を追加して、

<handlers>
   <add name="PHP-FastCGI" verb="*" 
      path="*.php" 
      modules="FastCgiModule"
      scriptProcessor="C:\Program Files (x86)\php\v5.6\php-cgi.exe" 
      resourceType="Either" />
</handlers>

ドライバーをPHPの拡張モジュールを格納する場所に入れて、php.iniにextensionで追加しました。

これはPHP 7.1でのセットアップ例だけど要領は一緒でしたので参考に記載します。

あとは、IIS上の特定サイトのWEBルートに以下を設置し、DBへの接続&テーブルからのレコード取得を確認しました。

<?php
$serverName = "mssql.test.com";
$database = "test_db";
$uid = "test";
$pwd = "test_for_password";

// DBへの接続
try {
    $conn = new PDO("sqlsrv:Server=$serverName;Database=$database", $uid, $pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1 );
} catch(PDOException $e) {
    die("Error connecting to SQL Server");
}
echo "Connected to SQL Server</br></br>";

// 全テーブルの全レコードを取得
$query = "select name from sysobjects where xtype = 'U' order by name";
$stmt = $conn->query($query);
while ($row = $stmt->fetch( PDO::FETCH_ASSOC)) {
    $query2 = "select * from " . $row["name"];
    $stmt2 = $conn->query($query2);
    while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
        print_r($row2);
        echo "</br></br>";
    }
    $stmt2 = null;
}

// コネクションの解放
$stmt = null;
$conn = null;

SQLiteのDBを技術者以外が編集できるようなツールが必要だったのでphpLiteAdminをカスタマイズしてみた

本家日本語翻訳プロジェクトを利用させていただき、ユーザがDBに対して破壊的な操作をできないように機能を大幅に制限したり、レコード挿入時に入力値をクレンジングしたりなど、凄く簡単に改修できた。これを再配布するつもりは全くなく便利ツールとして利用するだけだけど、ライセンスとか詳しくなくて問題とかないのか?

はい、調べますとも

READMEに書いてました。はい自己責任で運用します。

Copyright (C) 2016, phpLiteAdmin

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.