Monthly Archives: July 2016

treeコマンドで特定のパスを排除する方法

treeコマンドはフォルダの構造を出力します。ドキュメント作成等の場合において便利なツールです。しかし、特定のフォルダを除きたい場合はてこずります。 treeコマンドは-Pと-Iのパラメータを提供しテイルのですが、これらはファイル名のパタンを認識するもので、「/」が入っている長いパスには通用しません。ここで工夫を加えます。 ステップは treeにフルパスを出力させます。 grep等で除きたいパスを取り払います。 パスの部分を消します。 具体的に見てみましょう。ここでスペースを節約するためにフォルダのみを取ります。 例えば、gems/doc/*のすべてを除きたい。 普通のtreeコマンドにフォルダを出力させては、下記のようなものになります。

フルパスを出力させれば:

gems/doc/*を取り除きます:

最後に、「./gems/gems/rubygems-update-2.6.6」のような前綴りを消します。これは正規表現の出番です。

これで綺麗に終わります。

(en) MySQL 5.7 Data truncated for column ‘xxx’ at row 1

After upgrading to MySQL 5.7, unexpected problem appeared.

The col1 column is of ENUM type, and the empty string ” is not in its range.  This caused problem. However, in MySQL5.6 there was no problems.  But it errs in 5.7. After searching the internet, I found no help.  All… Read more »

MySQL 5.7 Data truncated for column ‘xxx’ at row 1

MySQL 5.7にアップグレードしましたら、思わぬ問題が出てきました。

カラムcol1はENUM型ですが、”は定義範囲に入ってしません。問題はここになります。 なぜ、MySQL5.6で行けたのに、5.7でダメなのか。 ネットを検索しましたが、いろいろ問題の根本に触りもしない答えばかりでした。 再度MySQLの公式ドキュメントをよく読みますと、問題はSQL方式(MODE)にありました。 STRICT_ALL_TABLES と STRICT_TRANS_TABLES が 環境変数SQL_MODEにないことを確認してください。また、無効の日付型を許したい場合は、ALLOW_INVALID_DATESがSQL_MODEにあることを確認してください。 セッション毎に設定したい場合は、下記のSQLを接続後とに実行してください。

/etc/my.cnfで設定する場合は、下記のような語句を入れます。

再起動したら、完了です。 SQL MODEに関して、もっと知りたいなら下記のページをご覧ください。 http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html 以上

rsyncでメモリオーバーして、sshとtarの組み合わせで代用する

大量なファイルをrsyncでコピーしようとすると、メモリが足りていますか?今日は下記のエラーに遭遇しました。

頼りになっているrsyncがダメであれば、別の手段でやってみるしかありません。 まずはscpを試しました。理論上で行けるのですが、何よりも時間がかかりまして、一個のファイルは1秒か2秒かかります。十数万のファイルがあるので、数日かかります。これは待てません。 次はtarで圧縮ファイルを作ってローカルにコピーしてから展開する。まあ…いかにも大変普通な方法ですね。

無事開始しました。待とう。…… やっぱり普通過ぎます。 rsyncなら、ローカルにパッケージを作らず大量のファイルを転送できるのに、tarでいけないかなぁ~ よし、やります。 tarに圧縮データをstdoutに書き出させます。sshでデータを取り寄せて、ローカルでまたtarで直接に展開します。いけそう。 最終に、次のコマンドになりました。

成功!!