2014年3月29日土曜日

netatalk導入、ついでにTimeMachine

 sambaがMacで遅いのでAFPを導入することにした。

・netatalkインストール
Netatalk 3.1.1 SRPMs for Fedora/Scientific Linux/CentOS - Netatalk Wiki


# wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.1-0.0.3.el6.src.rpm

# rpm -ivh netatalk-3.1.1-0.0.3.el6.src.rpm 
「警告: ユーザ hat は存在しません - root を使用します」と出るけど無視していいらしい。

# cd rpmbuild/SPECS/
# rpmbuild -bb netatalk.spec
エラー: ビルド依存性の失敗:
cracklib-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
openssl-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
quota-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
tcp_wrappers-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
libgcrypt-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
avahi-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
libacl-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
openldap-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
dbus-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
dbus-glib-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
glib2-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
systemtap-sdt-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
libtdb-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています
mysql-devel は netatalk-4:3.1.1-0.0.3.el6.x86_64 に必要とされています

 怒られる。
 yumで入れる
# yum install -y cracklib-devel openssl-devel quota-devel tcp_wrappers-devel libgcrypt-devel avahi-devel libacl-devel openldap-devel dbus-devel dbus-glib-devel glib2-devel systemtap-sdt-devel libtdb-devel mysql-devel 

 改めてビルド
# rpmbuild -bb netatalk.spec 

 インストール
# cd rpmbuild/RPMS/x86_64/
# rpm -ivh netatalk-3.1.1-0.0.3.el6.x86_64.rpm

 設定ファイル編集。最低限の事しかしなかった。
# vim /etc/afp.conf
;
; Netatalk 3.x configuration file
;

[Global]
; Global server settings
log level = defalut:warn
log file = /var/log/netatalk.log
uam list = uams_clrtxt.so uams_dhx.so uams_dhx2.so

[Homes]
basedir regex = /home

[Public]
path = /home/samba
file perm = 0744
directory perm = 0755

[Time Machine]
path = /home/******/timecapsule/mba
time machine = yes
vol size limit = 500000


 TimeMachine用ディレクトリ作成、所有者変更
# mkdir /home/******/timecapsule/
# mkdir /home/******/timecapsule/mba
# chown -R ****** /home/******/timecapsule/

 スタート
# service avahi-daemon start
# service netatalk start

 自動起動設定
# chkconfig avahi-daemon on
# chkconfig netatalk on

[追記 CentOS7対応]
設定ファイルはここにあった

/usr/local/etc/afp.conf
Firewalldの設定
# firewall-cmd --permanent --zone=public --add-service=mdns
# firewall-cmd --permanent --zone=public --add-port=548/tcp

# firewall-cmd --permanent --zone=public --add-port=548/udp

[参考]
自作NASで自宅ファイルサーバー 第6.1回 (NetatalkでTimeMachineに割り当てるディスク領域を制限する)
TimeMachineバックアップをLinuxサーバーで作る件|しま★りんのブログ
Netatalk で Time Capsule を自作してみた | Route3800
CentOS6.4サーバにNetatalk3.0.6をインスコしTime Machineの保存先にする手順 - Qiita
・https://zitseng.com/archives/6182

2014年3月21日金曜日

GALAXY SIII Progre SCL21 のキー配置を変える

 基本的に他のGALAXYシリーズと同じのはずだけど、ちょっと躓いたのでメモ。

Galaxy S4(SC-04E)のボタンの機能割り当てをAndroid純正ROM(AOSP)風に変更する方法。 - Android(アンドロイド)おすすめアプリ・カスタムニュース|AndroidLover.Net

SC-03E(Galaxy S3α)キー配置変更(menu⇔backキー入替): がじぇっと養分

 これらのサイト見ながらやっても上手くいかなかった。

 某大型掲示板によると、同じフォルダにあるsec_touchkey.klを変更しなければならないという。
 これを変更したところ、無事出来た。

2014年3月2日日曜日

Ripit+lame+cdparanoiaでCDリッピング・エンコード

 CDをMP3でエンコード。
 freedb.orgで曲名歌手などのタグもつけれる。

 perl入ってる前提。

 ripitインストール。公式から落としてきてmake。
 # wget http://suwald.com/ripit/ripit-3.9.0.tar.gz
 # tar xvvfz ripit-3.9.0.tar.gz
 # cd ripit-3.9.0/
 # make install

 使ってみるとCDDB_getが要るって怒られる。
 perlモジュールCDDB_getをインストール。
 そのまえにperl-CPANインストールしておく。
 # yum install perl-CPAN
 # perl -MCPAN -e 'install CDDB_get'

 更に忘れちゃいけない肝心のリッパーを入れる。(忘れてて怒られた)
 # yum install cdparanoia

 で、いよいよリッピング。
 # ripit -c 0 -b "off" -q "off" --lameopt "-b 320" -o /home/samba/temp

オプション等は参考サイトを参考のこと。

2014年2月21日金曜日

Nexus5(4.4.2)をroot化しなおし

 OSアプデしてから、バイナリ入れなおせって出たのでカスタムリカバリを起動しようとしたら上手くいかなくなっていたのでやり直した。
 同じことをやり直すだけなのに結構探しまわったのでメモっておく。

 まずbootloaderはアンロック済みとして以下のサイトを参考にした。(書くの面倒臭かったから参考サイトでごまかし)

 SDKなかったら落としてPATH通す

 カスタムリカバリ入れなおし

 root化
 Nexus5 Android4.4.1(KOT49E)のRoot化方法・手順 - Android(アンドロイド)おすすめアプリ・カスタムニュース|AndroidLover.Net

 アプリによってはroot化してると動かないものがあるのでそのときはSuperSUの設定でスーパーユーザーを無効化する。
 それでもダメだったのでSuperSUを/data/appに移動。
 参考:[Android]root対策済みのアプリが起動出来ない場合の対処方法

2014年2月10日月曜日

2014年2月3日月曜日

mysql。ついでにphpmyadmin。

前回の続きでmysqlを入れる

# service mysqld start
# chkconfig mysqld on

ここを参考に
MySQL初期設定までやった。

ネットからphpmyadminを落としてきて解凍。
# wget http://jaist.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.1.6/phpMyAdmin-4.1.6-all-languages.zip
# unzip phpMyAdmin-4.1.6-all-languages.zip

リネームしてwwwルート直下に設置 
# mv phpMyAdmin-4.1.6-all-languages phpmyadmin
# mv phpmyadmin /var/www/phpmyadmin

config.sample.inc.phpをコピーして利用
# cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

php設定ファイルの確認
# vim /etc/php.ini
session.save_path = "/var/lib/php/session"
となってるのを確認

# chown -R www.www /var/lib/php/session

# vim /etc/my.cnf 
[mysqld]に
character-set-server = utf8

# service php-fpm restart
# service nginx restart


おまけ
 phpmyadminを入れたので気休めの<気休めの^n>気休めにもならないがBASIC認証をかけた。
 ほんとはphpmyadminだけでいいけど、めんどくさいので全体にかける。

# vim /etc/nginx/conf.d/default.conf
    location / {
        root   /var/www;
        index  index.html index.htm index.php;
        auth_basic            "Basic Auth";
        auth_basic_user_file  "/etc/nginx/.htpasswd";

        if (!-e $request_filename) {
            rewrite ^/(.+)#  /index.php?q=$1 last;
            break;
        }
    }
赤字を追加

# htpasswd -c /etc/nginx/.htpasswd user名
New password: #パスワード設定
Re-type new password: #再入力
Adding password for user user名

# service nginx restart

以上、これからガリガリ、プログラム書かないと研究がやばい。

nginx+php

nginx入れたメモ

nginx公式リポジトリを入れる
# wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm

nginxインストール
# yum install -y nginx

起動、自動起動設定
# service nginx start
# chkconfig nginx on

wwwグループ、wwwユーザー作成、ログイン不可に
# groupadd www
# useradd -g www www
# usermod -s /bin/false www

実行ユーザーの変更
# vim /etc/nginx/nginx.conf
 user  nginx;
 user www;

ルートディレクトリ作成・コピー
# mkdir /var/www/
# cp /usr/share/nginx/html/* /var/www/

ルートディレクトリ
# vim /etc/nginx/conf.d/default.conf
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location / {
        root   /var/www;
        index  index.html index.htm;
    }

mysql、php関連インストール
# yum install --enablerepo=remi mysql mysql-server
# yum install --enablerepo=remi php php-fpm

# yum install --enablerepo=remi php-devel php-cli php-xml php-mysql php-mbstring php-gd phpmyadimn

php-fpm設定

#vim /etc/php-fpm.d/www.conf
 user = apache
 group = apache
 user = www
 group = www

phpが使えるようにnginxを設定
# vim /etc/nginx/conf.d/default.conf
    location / {
        root   /var/www;
        index  index.html index.htm index.php;

        if (!-e $request_filename) {
            rewrite ^/(.+)#  /index.php?q=$1 last;
            break;
        }
    }
〜〜〜〜〜〜〜〜〜〜〜〜
    location ~ \.php$ {
        root           /var/www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

テストページ作成
# echo '<?php echo phpinfo(); ?>' > /var/www/test.php

トップページのリネーム
# mv index.html index.php

php-fpmの起動・自動設定
# service php-fpm start
# chkconfig php-fpm on

テストページの確認
# service nginx restart
ブラウザでroot/test.phpにアクセス。phpのバージョン情報が出てくれば成功。

長くなったのでsqlは次回へ

2014年1月27日月曜日

バージョン管理

 鯖のバージョン管理しないと設定ファイルとかに不備がでたときに困ると思いつつ調べた。……だけ。
 boot領域全部バックアップしてってもいいけど、容量的にどうかなーと思いつつとりあえず調べる。

 調べると以下の様なものが出てきた

 Jenkins
 git
 etckeeper
 Subversion

 WEBアプリのバージョン管理もしたいし、gitにしようかなと。
 gitの勉強にもなるし。

 ここを参考にしたらよさげ?
 [git]設定ファイルのバックアップはもう設定ファイル.日付じゃなくてgit使いたいという話
 いつかやりたいね。いつか。

追記:ちょっと違うかも知んないけど、redmineも気になるところ。

sshのX11転送

 sshの万能さはすごい。
 VPNめんどくさくてまだ建ててないけど、sshでトンネル掘ってRDPしたりしてる。
 今回はX11転送について記しておく。
 鯖のXアプリケーションをクライアントで表示する。
 
 まず、クライアントのMac(Mavericks)にX11はインストールされていないので、インストール。
 インストーラはApplicationフォルダのX11.app(名前忘れた)から誘導される。

 鯖側の設定。
 /etc/ssh/sshd_configを編集。

X11Forwarding yes
X11DisplayOffset 10

 コメントアウトを外してこのように設定する。
 X11転送を許可し、擬似Xサーバのディスプレイ番号を設定。

 倉側。
 ssh接続時にオプション-Xをつける。

$ssh -X home

 結構通信量が多くレスポンスが悪いので-Cも入れると圧縮して通信してくれる。

$ssh -XC home

 接続後は試しに

$firefox &

 を確認したら動いた。

 suでユーザー切り替えたときは上手く行かなかったが下記のサイトを参考にすると上手くいきそう。
豆知識:SSHのX11転送(X11 forwarding)機能を使って、遠距離linuxサーバーのGUIアプリケーションを操作する方法


参考
http://blog.so-net.ne.jp/susshi_blog/2006-04-26-1
https://sites.google.com/site/teyasn001/ubuntu-12-10/sshniyorux11zhuan-song

2014年1月20日月曜日

pdumpfsによる差分バックアップ

 フォーマットとかマウントとかのやり方を覚えてない雑魚なので、このメモが役に立った。
 
 今回はバックアップについてメモる。
 基本的に大事なデータはsamba領域に入っていて、かつデカイので、ここのデータを別HDDにバックアップする。
 ホントはセキュリティ上別鯖でバックアップをとった方がいいが、今回はマシンが無いので保留とする。

 バックアップしたいディレクトリは/home/samba/
 バックアップ先は/backup/samba/
 バックアップ先は2TBHDDをext4でフォーマットし、/backup/にマウントした。

 方法としては、pdumpfsを用いて、Ubuntu/pdumpfsで世代別バックアップを参考に以下のコマンドを実行した。

#pdumpfs /home/samba /backup/samba/

 ここですごく時間がかかるので、今更ながらscreenの使い方を覚えた。
 screenコマンドでリモートマシン操作
 screenコマンド覚え書き@Linux
を参考。

 あとはcronとか設定して、参考サイトのcleanもしなければいかん気がするけどあとで。

2014年1月4日土曜日

ssh-rsa

 アカウント追加したときにsshログインがうまく行かなかったのでメモ。
 http://centossrv.com/teraterm-public.shtml
 ここの最後の項目「■公開鍵セットアップ※管理者ユーザ以外」を参考に作業。

 しかし、ログインすると


Permission denied (publickey,keyboard-interactive).

 と出る。原因はユーザーを作るときにuseraddコマンドをそのまま実行したからだった。
 このサイトのやり方だとchrootユーザーの作成はchroot-useraddスクリプトで行っているみたい。
 これ辺弄ったのが随分前なので忘れていた+当時は意味を理解していなかったからかなーと。

2014年1月1日水曜日

kobo on Android

 さっきの記事は諦めてMacも使わず鯖がLinuxなのでそのままコピペして作業した。
http://hpv.cc/~maty/pukiwiki1/index.php?kobo%2FAndroid

 まあできたのでよしとしよう。


追記

kobo touch買ったメモ

 kobo touchが届いたのでメモってく。

「kobo touch 増設」でググって裏蓋あける。
 SDスロットはスライド式だった。

1. SDカードをコピー

http://blog.osakana.net/archives/2748
 ここを参考にコピー。
 cpではなく、ddを用いる。
 参考サイトはLinuxだが、Macでやってみる。

$ df
……
/dev/disk1s3     2789040    231880   2557160     9%        0        0  100%   /Volumes/KOBOeReader

$ dd if=/dev/disk1s3 of=sde.dat bs=4096
dd: /dev/disk1s3: Permission denied

 権限が要るのを忘れてた。

$ sudo dd if=/dev/disk1s3 of=sde.dat bs=4096
Password:
dd: /dev/disk1s3: Resource busy

 Macの場合は自動でマウントしてしまうので、アンマウントしないといけない。
 普通にumountを叩くのではなくディスクユーティリティを用いる。

$ diskutil umount /Volumes/KOBOeReader
Volume KOBOeReader on disk1s3 unmounted

$ sudo dd if=/dev/disk1s3 of=sde.dat bs=4096
349311+1 records in
349311+1 records out
1430780928 bytes transferred in 320.295776 secs (4467061 bytes/sec)

できたっぽい?

2. 新しいSDにコピー
$ df
……
/dev/disk1s1    62411696     40128  62371568     1%        0        0  100%   /Volumes/NO NAME

 対象ディスクを把握。

$ diskutil umount /Volumes/'NO NAME'
Volume NO NAME on disk1s1 unmounted

$ sudo dd if=sde.dat of=/dev/disk1s1 bs=4096
Password:
349311+1 records in
349311+1 records out
1430780928 bytes transferred in 556.637200 secs (2570401 bytes/sec)

3. パーティション拡張
 ……はしなくても32GBとってた。

 おやおかしいなと思いつつ本体に挿して起動したが動かなかった。
 諦め。