a1 = [1,2,3,4,5] a2 = [[1,1,],[2,2],[3,3],[4,4],[5,5]] a12 = a1.zip(a2) p a12 #=> [[1, [1, 1]], [2, [2, 2]], [3, [3, 3]], [4, [4, 4]], [5, [5, 5]]] a21 = a2.zip(a1) p a21 #=> [[[1, 1], 1], [[2, 2], 2], [[3, 3], 3], [[4, 4], 4], [[5, 5], 5]]
Archive for: 月 2016’
Ruby配列で、zipを使用する
Rails5アプリをBluemix でDB migrate してエラー
ローカルの開発環境では、rake db:migrate はコマンド打てば簡単だが、Bluemix等のクラウド環境でのコマンドの実行方法が不明であった。どうやら、push するタイミングで下記のように -c オプションで可能なようだ。
$ cf push <appname> -c "bundle exec rake db:migrate"
DBを見ると、うまくマイグレーションされているようだが、その後アプリが、下記のエラーで起動しない。
ERR Instance (index 0) failed to start accepting connections
調べてみると、先ほど指定したオプションが邪魔しているようで、nullでクリアする必要があるようだ。
$ cf push <appname> -c "null"
その後、cf push で、普通通りにアプリがデプロイされて起動できた。
Read-only file system のファイルシステムエラー発生
■現象
○SVNコミット時に下記エラーで、コミットできない。
選択されたリソースのいくつかがコミットされませんでした。 svn: E204900: Commit failed (details follow): svn: E204900: Can't create directory '/var/www/svn/repos/project/db/transactions/12345-1.txn': Read-only file system svn: E175002: MKACTIVITY of '/svn/repo/project/!svn/act/b2f11144-123-0010-abcd-c12345678f7': 500 Internal Server Error (http://xx.xx.xx.xx)
■原因
○svnレポジトリ他、/mydisc に対するファイル書き込みができなくなっている。
■対応内容
○/mydisc に対して再マウント ⇒ 失敗
[root]# mount -o remount /dev/sdc1 mount: ブロックデバイス /dev/sdc1 は書き込み禁止です、読込み専用でマウントします
○/mydisc に対してアンマウント ⇒ 失敗
[root]# umount /dev/sdc1 umount: /mydisc: デバイスを使用中です
○/mydisc を利用中のプロセス確認
[root]# fuser -muv /dev/sdc1 USER PID ACCESS COMMAND /dev/sdc1: root 2461 F.... (root)httpd root 5684 F.... (root)PassengerWatchd root 5687 F.... (root)PassengerHelper root 5696 F.... (root)ruby nobody 5700 F.... (nobody)PassengerLoggin apache 5720 F.... (apache)httpd apache 5721 F.... (apache)httpd apache 5722 F.... (apache)httpd mysql 11773 F.c.. (mysql)mysqld root 14145 F.... (root)java
○/mydisc を利用中の httpd / mysqld / java プロセス終了
[root]# /etc/rc.d/init.d/httpd stop httpd を停止中: [ OK ] [root]# /etc/rc.d/init.d/mysqld stop MySQL を停止中: [ OK ] [root]# fuser -muv /dev/sdc1 USER PID ACCESS COMMAND /dev/sdc1: root 14145 F.... (root)java [root]# kill -KILL 14145
○/mydisc に対してアンマウント ⇒ 成功
[root]# umount /dev/sdc1
○マウントの確認
[root]# mount -t ext3 /dev/sdc1 /mydisc
[root]# mount -v /dev/sdc1 on /mydisc type ext3 (rw)