だ。ログ。

開発とかスノボとかやきうとか。

SSHの鍵ファイルの権限周り

どうしてもサーバー管理をしていると、新しくユーザーを追加する事がある。

$ useradd hogefuga

ユーザー自体はこれで作成出来る。
この後に接続する為の鍵をユーザーに作って共有してもらう。
これは作ったユーザーのディレクトリにて

$ cd /home/hogefuga/
$ mkdir .ssh
$ chmod 700 .ssh

ここまでしてから.sshに作って共有してもらった.pubファイルをauthorized_keys と名前を変更してアップする。
ただ、これでミッション完了ではない。

$ chown hogefuga:hogefuga authorized_keys
$ chmod 600 authorized_keys

権限設定をしないとログインに弾かれるのでメモ。

SSHの鍵ファイルの権限周り

どうしてもサーバー管理をしていると、新しくユーザーを追加する事がある。

$ useradd hogefuga

ユーザー自体はこれで作成出来る。
この後に接続する為の鍵をユーザーに作って共有してもらう。
これは作ったユーザーのディレクトリにて

$ cd /home/hogefuga/
$ mkdir .ssh
$ chmod 700 .ssh

ここまでしてから.sshに作って共有してもらった.pubファイルをauthorized_keys と名前を変更してアップする。
ただ、これでミッション完了ではない。

$ chown hogefuga:hogefuga authorized_keys
$ chmod 600 authorized_keys

権限設定をしないとログインに弾かれるのでメモ。

mysqldumpでGot a packet bigger than ‘max_allowed_packet’でdumpできない。

環境をまるっとコピーする為にdumpしよう

$ mysqldump -uhoge -p hogefuga > dump.sql

ってなコマンドを打ってdump開始まではしたものの
Got a packet bigger than ‘max_allowed_packet’
と出て途中で止まる。読んで字の通り、パケット上限に引っかかってるから吐き出せないと言う事らしい。

my.cnfのmax_allowed_packetを変更して再起動するのも微妙なのでコマンドラインで対処

$ mysqldump -uhoge -p --max_allowed_packet=1G hogefuga > dump.sql

1Gに一時的にしましたって事で。

javascriptのsplitが動かない

コンソールに出てきた xxx.split is not a function の文字。
checkboxをjQueryで取得した後に分解して配列にしようとした時に出てきた物だ。

      var checked_item;
      checked_item = $('[class="cls_check_num"]:checked').map(function(){
        return $(this).val();
      }).get();
      if(checked_item.length > 0){
        var resArray = checked_item.split(",");  ##←←エラー箇所
        for(var i=0;i<resArray.length;i++){
          alert(resArray[i]+"がチェックされてる");
        }
      }

このsplitをしているチェックボックスのデータに問題がある。

      var checked_item;
      checked_item = $('[class="cls_check_num"]:checked').map(function(){
        return $(this).val();
      }).get();
      if(checked_item.length > 0){
        var resArray = (string(checked_item)).split(",");
        for(var i=0;i<resArray.length;i++){
          alert(resArray[i]+"がチェックされてる");
        }
      }

チェックボックスから取得したカンマ区切りの値を明示的に文字列だと宣言すると動く。
おまじないみたいなモノだけどたまにjQueryを触るとこういう細かい所で躓くのでメモ。

MySQL Has Gone Away

Vagrantでローカル環境を作っていた際にmy.cnfの事を全く考えずに数GBあるデータを

$ mysql -uhoge -p < dump.sql

と何気なくコマンドを打つと程なくして

ERROR 2006 (HY000) at line **: MySQL server has gone away

逝かれましたとの表示が。
なんだろ?と思ったらMySQL(MariaDB)のmax_allowed_packetを設定していなかった。
DBの性質上BLOBみたいなバイナリをDBで持っていると出やすい。

/etc/my.cnfの[mysqld]に

max_allowed_packet = 512M

ひょうきんに大きな数値にしたらエラーは回避された。

phpMyAdminのblowfishの生成

毎回ローカル環境を立てる際にphpMyAdminのblowfishの作り方で止まる。

# expectのインストール
$ yum install expect

# インストールが終わったらblowfishの生成
$ mkpasswd -l 46

と言う事でmkpasswdで文字列を生成してコピペすれば終わり。
インストール10秒くらいだし手間だなとはいえやっとくにこしたことはない。

EC2のリタイア予告

サーバーの朝のご機嫌を伺うためにAWSのコントロールパネルを見ていると見慣れない文字が

リタイア:このインスタンスは2018年○月○日 1:23:45 UTC+9後にリタイアが予定されています。

リタイア…?
ドキュメントを読むと、機器の老朽化等で現在搭載されているインスタンスのサーバーが退役の予定。
現在の機器から違う機器やインスタンスに乗り換える必要がある。との事。

え、何もしてないのにサーバーの移行しないといけないの??
とドキュメントを漁っているとサーバーの再起動をする。(インスタンスの停止 → 再稼働)
と言う手順でサーバーを再起動すると、スケジュール済みのシャットダウンイベントが消えた。

サーバーの再起動の際に旧機材から新機材に移ったのかな。
とりあえず再起動するとスケジュール対象から消えたのでメモ