yuu_nkjm blog


2011-07-01(Fri) [長年日記] 編集

[VirtualBox] VirtualBoxのブリッジ接続

設定->ネットワーク->アダプタで,以下の様に選択する.うまくいかない場合は,アダプタタイプを変更してみると良いかも.

  • 割り当て:ブリッジアダプタ
  • 名前: MAC Bridge Miniport
  • 高度
    • アダプタタイプ:PCnet-FAST III(ダメだったらIntel PRO/1000 MT Desktop)
    画像の説明

2011-07-02(Sat) [長年日記] 編集

[VirtualBox][openSUSE] VirtualBoxの仮想HDDのサイズを大きくする(変更する)

仮想HDDサイズの拡大

仮想HDD(仮想メディア)のサイズは,以下のコマンドで変更できる.サイズを大きくすることは出来るが,小さくすることは出来ない.

$ VBoxManage.exe modifyhd suse-disk.vdi --resize 480000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
 
$ VBoxManage.exe modifyhd suse-disk.vdi --resize 460000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not implemented yet!

パーティションサイズの拡大

仮想的な物理HDDのサイズが変わるだけなので,パーティションサイズは変更されない.パーティションのサイズは,OS上で変更する必要がある.

SUSEを使っていて,当該パーティションが/でないパーティションならyastから簡単に変更できる./にマウントされているパーティションの場合は,既存のLinux環境やGPartedやknoppixあたりを使って,当該パーティションをどこかにマウントしてサイズを拡大する必要がある.


2011-07-03(Sun) [長年日記] 編集

[coLinux][VirtualBox][dd] colinuxの仮想HDDをVirtualBoxの仮想HDDにコピーする

colinuxのHDDの変換

VirtualBoxを起動,VMを選択し,設定を開く.そして,仮想メディアの追加を押す.virtualbox-data.dviという名前で,最大サイズを460Gとして可変サイズの仮想HDDを作成する.

つづいて,colinux-dataの仮想HDDをVirtualBox形式に変換したものを用意する.colinux-data.imgのサイズは200Gである.

 VBoxManage.exe convertfromraw --format VDI colinux-data.img colinux-data.vdi

作成されたcolinux-data.vdiをVMの設定で登録する.

今回,colinux-data.vdiが/dev/sddとして,virtualbox-data.dviが/dev/sdeとして認識された.

colinuxのHDDのデータをddでコピー

VMを起動する.yast->システム->パーティション設定と選んで,/dev/sdeに460Gでプライマリパーティションを作成する.

マウントし,状況を確認.coLinuxの仮想HDDを変換したディスクはパーティションが切られていないことに注意.

 mount /dev/sdd /mnt/colinux-data
 mount /dev/sde1 /mnt/virtualbox-data
 
 df -h 
 /dev/sdd             197G  146G   42G  78% /mnt/colinux-data
 /dev/sde1            453G  0G  453G  0%    /mnt/virtualbox-data

変換されたcoLinuxの仮想HDD(/dev/sdd)をvirtualBoxの仮想HDDのパーティション1(/dev/sde1)に,ddコマンドでコピーする.coLinuxの仮想HDDの方はパーティションが切られていないことに注意.一度umountしてdd.

 dd if=/dev/sdd of=/dev/sde1 bs=4M

mountしなおして,データがコピーされていることを確認.

 mount /dev/sdd /mnt/colinux-data
 ls /mnt/colinux-data

HDDの認識を確認.

 df -h
 /dev/sde1             197G  146G   42G  78% /mnt/colinux-data

あれ,460Gになるはずが197Gになってしまっている.パーティションサイズってMBRに書いてあるんだと思ったけど,何でなんだろ.基本パーティションの先頭のセクタ(ブートセクタ?PBR?)に書いてあったっけ?いずれにせよ,ddをする際に,元colinuxの/dev/sddのブートセクタ(1ブロックだっけ)を飛ばして,/dev/sda1のブートセクタの次から書き込みをはじめりゃ良かったかな.

"umount /dev/sde1"して,yast->システム->パーティション設定,/dev/sde1のサイズを459.00Gに変更する.

HDDの認識を確認すると,めでたく目的が達成されていることが分かった.

 df -h
 /dev/sde1             452G  146G  284G  34% /mnt/colinux-data

2011-07-05(Tue) [長年日記] 編集

[Windowsまとめ][Windows 7 (64bit)][Windows][Troubleshooting] Windows 7 (64bit)のインストールと環境の構築のまとめ

Windows 8はこちら.Windows 8 Pro (64bit)のインストール - yuu_nkjm blog(2012-11-24)

目次

  1. OSのインストール
  2. アプリケーションのインストール
  3. OSの設定
  4. アプリケーションの設定

OSのインストール

  • 必要のないデバイスは外す.
  • Windowsのインストーラを起動すると,最初にパーティションを切る.この後でフォーマットせずに,インストール先を選択し,インストールをはじめると,「ファイルを展開しています(0%)」と表示される時間が長くなる気がする.やたらと,「ファイルを展開しています(0%)」が長いときがあって,そのときはフォーマットしていなかったと思うので.フォーマットの有無は関係なかった.「ファイルを展開しています(0%)」が,10分以上続いても,気にせず放置.

トラブルシューティング

アプリケーションのインストール

ローカルHDDに保存してあるインストールディスクファイルからインストールするソフトウェア

定番
必要があるとき入れる
  • Just PDF 高度編集
  • ScanSnap ドライバ&アプリケーション
  • Cyber Link Power Director 10
ノートPCのみ

ダウンロードするソフトウェア

定番
再インストールした方が便利

OSとの連携などの機能を使うためには,再インストールした方が便利.

スタートアップに入れるソフトウェア

"C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"に置くリンク

clnch,CLCL,cltc,pageant,tclock,のどか,VirtuaWin,IPMSG,MultiMon,

OSの設定

定番設定

mkdir C:\tmp
mklink /d E:\root E:\Dropbox
mklink /d "C:\Program Files (x86)\Google\Chrome\Application" C:\Users\nkjm\AppData\Local\Google\Chrome\Application
  • スタートアップ(C:\Users\xxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)にショートカットを登録する.
  • いじくるつーる:シェル->フォルダのターゲットからデスクトップの位置を変更する.(いじくるつくーるのダウンロード).デスクトップのターゲットディレクトリを変更するregを実行する.
  • clunch.exe,pagent.exe,nodoka64.exeを右クリックし,管理者権限で実行するようにする.リモートデスクトップの時に何かをするためのハックだったと思うのだが思い出せん.なしにしよう.
  • フォントのインストール.フォントファイルを開くと,インストールというボタンがあるので,それを押す.
  • コンピュータの管理->ディスクの管理から,ドライブレターを適宜変更する.
  • スタートアップを,移行元マシンからコピーする.
  • コントロール パネル\すべてのコントロール パネル項目\電源オプション\プラン設定の編集でスリープに入る時間を設定する.スリープになっているマシンにはリモートデスクトップでログインできない気がする.
  • 個人設定->デスクトップアイコン->コンピュータ:チェック
  • システムのプロパティ->システムの詳細設定->リモート->ネットワークレベル認証でリモートデスクトップを実行しているコンピュータからのみ接続を許可する(セキュリティのレベルは低くなります),リモートアシスタンスは不許可
  • システムのプロパティ->システムの詳細設定->パフォーマンス->スクリーンフォントをなめらかに,アイコンの代わりに縮小版,ウィンドウとボタンに視覚スタイルをオン
  • システムのプロパティ->システムの詳細設定->環境変数で,PATH変数にいろいろ追加する.
  • システムのプロパティ->システムの詳細設定->コンピュータ名で,コンピュータ名とワークグループを設定する.
  • Windowsアップデート->設定の変更で,「更新を自動ダウンロードするがインストールは手動」を選択する.勝手に再起動されると鬱陶しいので,自分でコントロールしたい.
  • hostsファイルの設定.管理者権限でエディタを開いて編集する.
  • Windows ヘルプ形式 (WinHlp32.exe) で作成されたヘルプを開くことができない
  • システムのプロパティ->システムの詳細設定から,パフォーマンス優先を選択する.フォントの縁を滑らかにする,ウィンドウとボタンに視覚効果を追加する.
  • 整理->検索・フォルダーのオプションから,拡張子を表示,隠しファイルを表示などをオンにする.
  • 復元,バックアップの設定.WindowsをインストールしたCドライブのバックアップを外付けHDDにするようにする.
  • コマンドプロンプトのウィンドウを右クリックし,規定値からフォントサイズを小さくする選択をする.

アプリケーション設定

TeXの設定


2011-07-06(Wed) [長年日記] 編集

[サーバまとめ][Linux][openSUSE][update-alternatives] サーバ環境の移行と再構築

インストール

移行先にOSをインストールする.詳細はopenSUSE11.4(64bit)のインストール - yuu_nkjm blog(2011-07-18)に書いてある.

ポイント

  • ブートローダはMBRではなくブートセクタ(PBR?)に入れた方がよいかな.
  • デスクトップマネージャとして,xfceを入れる.
  • sshサーバは起動時に起動するようにはなっていない.初回はコンソールからsshサーバを立ち上げる必要がある.
  • LVMにする.整合性の取れたバックアップがとりたいので,LVMのスナップショット機能を利用し,スナップショットに対してpdumpfsでもする予定.

移行元からのデータのコピー

全体

  • 移行元の環境があれば,そこからデータをコピーする.移行元のHDDは,/prevあたりにマウントしておくと便利.

データのコピー

  • 主要なデータが保存されている/home,/srvをcp -aでコピーする./rootも持っていって良いかも.
  • Tomcatのデータが/usr/local/share/tomcat以下,MySQLのデータが/var/lib/mysqlにあるので,その辺りも持っていく.

システムの設定のコピー

  • ユーザ情報,グループ情報も持って来ちゃって良いかな.いつか不整合を起こしそうだな.
  • cp -a /prev/etc/passwd /prev/etc/shadow /prev/etc/group /etc
    
  • /etc/sslあたりにSSL認証の情報があるので,持っていく.

/etc/sysconfigのコピー

  • /etc/sysconfig以下の情報を複製しないと,sysconfigエディターで設定ファイルを生成するときに,コピーしてきた設定を壊してしまうことが起こりそう.しかし,単なるコピーはしたくないので,手作業でsysconfigエディターを使って編集することにする.

システムの設定

全体

ネットワークの設定

  • yastで設定する.
    • yastのネームサーバの設定が効かないことがあった.その時は,/etc/resolv.confで指定する.

ソフトウェアレポジトリの登録

jenkins          http://pkg.jenkins-ci.org/opensuse/
network factory  http://download.opensuse.org/repositories/network/openSUSE_Factory/
php extensions   http://download.opensuse.org/repositories/server:/php/openSUSE_12.1/ 

ユーティリティ

  • findutils-locate, emacs

サービス

  • SQLite3
  • ntp: chkconfigでonする.プロキシ環境下だと外部のntpサーバにアクセス出来ない可能性があるので,その場合は自分でNTPサーバを指定する.

Webシステム関連

apache

MySQL

  • yastでmysql-community-serverを入れる.
  • 移行元から/var/lib/mysql,/etc/my.cnfを持ってくる.

Tomcat

DNS(BIND)

HTPP Proxy(squid)

メール

postfix

データ共有

samba

svn (subversion)

  • コミット後の処理にrubyを使っているので,rubyも入れておく.

バックアップ

LVM

pdumpfs

セキュリティ

全体

  • ルータでパケットのフィルタリングをするので,Firewallはオフにする.AppArmorは挙動がよく分からんから,外しちゃっても良いかも.

fail2ban

  •  chkconfig fail2ban on
     cp -a  /prev/etc/fail2ban/jail.conf /etc/fail2ban
    

ssh

システム管理

cron

データのコピー
  • cronのタスクの内容をコピー
  • cp -a /prev/var/spool/cron/tabs /var/spool/cron

rsyslog

ログローテーション

監視

プログラム実行環境

Python

  • ruby,Java, Perl
  • update-alternatives --config javaあたり.
    There are 2 choices for the alternative java (providing /usr/bin/java).
     
      Selection    Path                                       Priority   Status
    ------------------------------------------------------------
    * 0            /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java   17147     auto mode
      1            /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java   17147     manual mode
      2            /usr/lib64/jvm/jre-1.8.0-openjdk/bin/java   1805      manual mode
     
    Press enter to keep the current choice[*], or type selection number: 2
    update-alternatives: using /usr/lib64/jvm/jre-1.8.0-openjdk/bin/java to provide /usr/bin/java (java) in manual mode
    
  • Dropbox openSUSE(12.1)上でCUIのみでDropboxを使う&プロキシ越え - yuu_nkjm blog(2012-07-02) http://yuu.nkjm.info/diary/20120702.html

仮想環境

KVM

  • KVM, QEMU, libvirtを入れる.

2011-07-07(Thu) [長年日記] 編集

[サーバまとめ][openSUSE][Apache][PHP] Apacheの移行のまとめ

Apache全体

  • 自動起動をオンにする.
  • chkconfig apache2 on
    
  • yastでは,php_mod,php5-zlib mod_perl kakashi apacheを入れる.
  • sysconfigエディターで指定するモジュールは以下である.
  • /etc/sysconfig/apache2
    > APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 proxy proxy_http rewrite headers dav dav_fs python auth_digest perl "
    
  • とある場所にまとめてある.htaccess類をコピーする.

サブドメインを切る

  • /etc/apache2/vhost.d/以下にサブドメインの設定を書く.yuu.nkjm.infoであれば,/etc/apache2/vhost.d/yuu.nkjm.info.confというファイルに書けば良い.バーチャルホストの設定類は,移行元からコピーでOK.
  • /etc/apache2/listen.confで名前ベースのバーチャルホストが出来るようにする.
  • NameVirtualHost *:80
    Listen 80
    

php on Apache

  • pukiwikiを使いたいので,phpを動かす.
  • /etc/php5/apache2/php.ini
     
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 500M
     
    log_errors= ON
    display_errors = ON
    error_log = php_errors.log
     
    ;date.timezone = 'UTC'
    date.timezone = 'Asia/Tokyo'
    

webdav

  • /etc/sysconfig/apache2のapache moduleにheaders dav dav_fsを追加する.
  • ロックファイルを作成するディレクトリを作成する.
  • mkdir /var/lock/dav
    chown wwwrun:www /var/lock/dav
    
  • 適当な位置(yuu.nkjm.inco.confとか)にwebdavの設定を書き込む.lockファイルは,ディレクトリ+プレフィックスを指定する.
  • <IfModule mod_dav.c>
        DavLockDB /var/lock/dav/DavLock
        DAVMinTimeout 6000
        <Directory "/hoge/hoge">
            Options Indexes FollowSymLinks
            AllowOverride All
            DAV On
            Header add MS-Author-Via "DAV"
            AuthType Digest
            AuthName "hogehoge"
            AuthBasicProvider file
            AuthDigestDomain /
            AuthUserFile /hoge/.hthoge
            AuthGroupFile /hoge/.htgrouphoge
            Order allow,deny
            Deny from all
        <LimitExcept OPTIONS>
            require user hoge
        </LimitExcept>
        </Directory>
    </IfModule>
    

2011-07-08(Fri) [長年日記] 編集

[サーバまとめ][openSUSE][Postfix] Postfixの移行のまとめ

以下,リレーホストをbiglobeにしたときの設定を主に書く.おまけでGmailも.

yastから初期設定

  • 最初の質問:標準
  • 一般の設定:常時接続
  • 外部配信メール:
    外部配信用メールサーバ(O):[msagw.biglobe.ne.jp]:25(※デフォルトのポート番号である25番を使う時は省略可能の様だ.ここで25を付けなかったら他の時もつけてはいけないし,ここで付けたら他の時も付ける必要がある.後のSMTP-AUTHの設定(/etc/postfix/sasl_passwd)と関係する.ここではまった….)
    TLSを使用する:使用する
  • マスカレード ローカルに配信されるメールのドメイン名:メールを受けとりたいドメイン名(mydestinationに該当する様だ.sysconfigエディタで設定してもOK)
  • 認証
  • [msagw.biglobe.ne.jp]:25のログイン情報を設定する.ここで書き込まれたデータが/etc/postfix/sasl_passwdに設定される.上記で設定した外部配信用メールサーバと正確に一致する様に書く.これを設定したあと,postmapコマンドが叩かれているかは未確認.叩かれていると思うけど….

  • 受信メール
    リモートのSMTP接続を許可:チェックしない
    root宛のメールの転送先:お好みで

sysconfigエディタでの設定

  • Mail->General MAIL_CREATE_CONFIG: YaSTに設定ファイルを生成させたくないときはnoにする.
  • Mail->Postfix POSTFIX_LOCALDOMAINS:メールを受けとりたいドメイン名
  • POSTFIX_SMTP_AUTH yes
  • POSTFIX_SMTP_AUTH_SERVER yes
  • POSTFIX_SMTP_TLS_CLIENT yes (Gmailをリレーホストとしたときは必要だったけど,今回は不要かも)
  • POSTFIX_SMTP_TLS_SERVER yes(Gmailをリレーホストとしたときは必要だったけど,今回は不要かも).以下のエラーが出ても,実用上で問題は発生しなかった./etc/postfix/sslをコピーしたらエラーが出なくなった.
    warning: No server certs available. TLS won't be enabled
    

手作業で確認

  • /etc/postfix/main.cfの以下の項目を確認.特にポート番号.
    relayhost = [msagw.biglobe.ne.jp]:25
    
  • /etc/postfix/sasl_passwdの以下の項目を確認.特にポート番号.
    [msagw.biglobe.ne.jp]:25        hogehoge@biglobe.ne.jp:password
    
  • 上記で変更を行った場合は,パスワードデータベースを更新し,postfixを再起動(またはreload)する.
    postmap /etc/postfix/sasl_passwd
    /etc/init.d/postfix restart
    

設定ファイルのコピー

  • /etc/postfix/sslをコピーする.
  • /etc/aliasesをコピーする.仮想ドメインを使っていたら,それ様のaliaseデータも持っていく.

Gmailをリレーホストとする場合

手動設定

Postfix で、Gmail にメールをリレーする - 私の二次記憶が非常に参考になる.

Gmailをリレーホストとする場合は,上記の設定に以下の変更を加える.

  • main.cf
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_mechanism_filter = plain
    
  • sasl_passwd
    [smtp.gmail.com]:587  hogehoge@gmail.com:password
    

    パスワードデータベースの更新

    postmap /etc/postfix/sasl_passwd
    

トラブルシューティング

fatal: specify a password table via the `smtp_sasl_password_maps'
configuration parameter

エラーの文句そのままですね。SASL は定義されていますが、パスワードファイルが指定されていないようです。smtp_sasl_password_maps の記述はありますか? 綴りの間違いはないですか?

status=deferred (SASL authentication failed; cannot authenticate to server
smtp.gmail.com[nnn.nnn.nnn.nnn]: no mechanism available)

SASL は動作していますが、サーバーとクライアントの間で、合意できる SASL 認証手法が見つからなかったようです。main.cf に、smtp_sasl_tls_security_options = noanonymous は記述されていますか?


2011-07-09(Sat) [長年日記] 編集

[サーバまとめ][openSUSE][Samba] sambaの移行のまとめ

yastで設定

  • 一般
    • workgroupの指定:適当に
    • Sambaサーバの種類:ドメインコントローラでない
  • 起動
    • サービスの開始:システム起動時
  • 識別情報
    • NetBIOSホスト名:Windowsから引きたい名前をつける
    • WINSサーバのサポート:チェックする
    • リモートWINSサーバ:チェックしない
    • DHCPでWINSサーバのアドレスを取得:チェックしない
    • ホスト名の解決にWINSを使用する:チェックする

全体の設定

  • シンボリックリンクでどこまでもたどれるようにする(wide links = yes , unix extensions = no).
  • sambaでマウントしたときのファイルとディレクトリのアクセス権限を指定する.
  • /etc/samba/smb.conf
     
    [global]
            wide links = yes
            unix extensions = no
    [homes]
            create mask = 0664
            directory mask = 0775
    [users]
            create mask = 0664
            directory mask = 0775
    
  • ゴミ箱を使うかどうかが悩ましい. @IT:Samba 3.0でごみ箱を使うには

ユーザの追加

  • smbpasswd -a user名として,sambaを使えるユーザを作成する."/etc/samba/passdb.tdb"をコピーしてきても良さそう.

設定の移行

  • パスワードなども引き継ぎたいなら,/etc/samba以下のをコピーする必要がある.

自動起動

  • chkconfig smb on

2011-07-10(Sun) [長年日記] 編集

[サーバまとめ][openSUSE][squid] squid(HTTPプロキシ)の移行のまとめ

  • yastでsquidとyast2-squidを入れる.
  • yastを再起動."yast->ネットワークサービス->Squid”で設定可能.ローカルネットワークからしかproxyを使えないようにデフォルトで設定されているようだ.するべき設定は,起動をonにするぐらいかな.
  • 特に設定をせずにSSL(https)も使える.fedora 8を使ってた時は,ソースからインストールしていた.その時は,SSLを使える様にするのに,コンパイルオプションの指定が必要だったのに….

2011-07-11(Mon) [長年日記] 編集

[サーバまとめ][openSUSE][DNS][bind] bindの移行のまとめ

bindはyastでインストールできる.

名前の問合せしかしない場合(ゾーン情報を持たない場合)

  • 指定したネットワークからしか再帰的な問合せに回答しないように設定をする.yyy.yy.yy.yyy/26はDNS問合せを許すローカルネットワークの範囲.
  • xxx.xx.xx.xxxは外部が提供してくれているDNSサーバ.管理しているサーバでは,ルートDNSサーバと直接通信ができないので,問合せの転送を行う.
options {
        directory "/var/lib/named";
        dump-file "/var/log/named_dump.db";
        statistics-file "/var/log/named.stats";
        forwarders { xxx.xx.xx.xxx; };
        forward only;
        listen-on-v6 { none; };
        recursion yes;
        allow-query { 127.0.0.1; yyy.yy.yy.yyy/26; };
        allow-recursion { localhost; yyy.yy.yy.yyy/26; };
};
#For debug
# logging {
#         channel syslog_queries {
#                 syslog user;
#                 severity info;
#         };
#         category queries { syslog_queries; };
#         channel syslog_errors {
#                 syslog user;
#                 severity error;
#         };
#         category default { syslog_errors;  };
# };
 
include "/etc/named.conf.include";

問合せに回答する場合(ゾーン情報を持つ場合)

  • /etc/named.conf.includeにゾーンファイルの読み込みの指定が書いてあるのでコピーする.
  • /var/lib/named/以下にゾーンファイルなどの設定があるのでコピーする.

2011-07-12(Tue) [長年日記] 編集

[サーバまとめ][openSUSE][ssh] sshdのまとめ

既存のサーバから移行する場合

  • /etc/ssh/sshd.confを手動マージする.

新規インストールの場合

  • rootのログインなし,パスワード無ログインなし,パスワードでのログイン禁止,DNSは使わない.特定のIPアドレスからだけパスワードでのログインを許可.
  • /etc/ssh/sshd_config
     
    #PermitRootLogin yes
    PermitRootLogin no
    #PermitEmptyPasswords no
    PermitEmptyPasswords no
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    #UseDNS yes
    UseDNS no
    Match Address 100.10.*.*,10.10.10.*
           PasswordAuthentication yes
    
    Match Address以下で,PermitRootLoginの値は書きかえられない様だ.Matchで設定できる項目の詳細はSSHD_CONFIG (5)を参照のこと.

2011-07-13(Wed) [長年日記] 編集

[サーバまとめ][openSUSE][syslog] rsyslogの移行のまとめ

  • 「System->Logging->SYSLOGD_PARAMSに-rを指定する.-rでリモートからのログを受け付けるようになる」というのはobsoleteらしい.リモートからのログを受け取れるようにするには,以下の様に書く.
  • /etc/rsyslog.conf
     
    $ModLoad imudp
    $UDPServerRun 514
    
  • cronのログをcron.logに書くようにする.
  • /etc/rsyslog.d/cron.conf
     
    cron.* /var/log/cron
    
  • ルータのログも記録する.facility値(Syslogサーバにおけるファシリティ値を教えてください。【AirStation】 | BUFFALO バッファロー)ではうまくいかなかったので,ログメッセージで振り分けることにした.ハイフンは非同期で記録するという指示.
  • if $msg contains '[MAC ADDRESS] ROUTER_NAME' then -/var/log/router
    
  • cronのlogがmessagesに書かれないようにする.
  • /etc/rsyslog.d/cron.conf
     
    #*.*;mail.none;news.none                        -/var/log/messages
    *.*;mail.none;news.none;cron.none                       -/var/log/messages
    

2011-07-14(Thu) [長年日記] 編集

[サーバまとめ][openSUSE][logrotate][syslog] ログローテーションの設定

  • /prev/etc/logrotate.d/からcronとrouterをコピーする.
  • apacheのログを変える例.バーチャルホストを使ってログを分けている場合は,全てのログファイルをローテートするように書きかえないといけない.
    /var/log/apache2/*log { #ワイルドカードが使える
     compress    #ローテション後のファイルを gzip で圧縮.
     dateext     #ローテション後のファイルにYYYYMMDDと付与.
     maxage 365  #ローテション後のファイルを残す日数.
     rotate 99   #ログファイルのローテーション回数.
     monthly
     size=+1024k #ログファイルが指定サイズを超過したらローテーションを開始. 
     notifempty  #ログファイルが空ならローテーション未実施.
     missingok   #ログファイルが無くても処理を正常終了.
     create 644 root root #新ログファイルをパーミッション(644)、所有者(root)、グループ(root)で生成.
     postrotate  #このコマンドとendscriptの間にログファイルのローテーション後に実行するコマンドを記述.
     mkdir -p /var/log/buffer/apache2
     mv /var/log/apache2/*.gz /var/log/buffer/apache2
     /etc/init.d/syslog reload
     endscript   #postrotate の終わり.
    }
    

2011-07-15(Fri) [長年日記] 編集

[サーバまとめ][openSUSE][logwatch][syslog] logwatchの移行のまとめ

  • /etc/logwatch以下をコピー.
  • /usr/share/logwatch/以下にデフォルトの設定がある./etc/logwatch.confや/etc/override.confで設定を上書きする.
  • 独自のフィルタ類を追加したい時は,/etc/logwatch/conf/servicesの下に設定を置く(xxx.conf)./etc/logwatch/scripts/servicesの下にスクリプトを置く(xxx).ここで,名前を揃える必要がある.
  • logファイルのフィルタ類は/etc/logwatch/conf/logfilesに置く.
  • logwatch.confやoverride.confでログ監視の複数の設定を管理するのは難しそう.logwatch.confはあくまでデフォルトと思うのが良さそう.mailだけを監視したい,ディスクスペースだけを監視したいというときは,logwatchコマンドの引数にserviceパラメータを渡したものをcronで叩くのが良い.

2011-07-16(Sat) [長年日記] 編集

[サーバまとめ][openSUSE][Tomcat] Tomcatの移行のまとめ

インストール

  • yastで"tomcat6"と"tomcat6-admin-webapps"を入れる.
  • tomcatのマネージャを操作するアカウントの設定を/etc/tomcat/tomcat-users.xmlに書き込む.
    <user name="admin" password="*********" roles="admin,manager,admin-gui,adm
    in-script,manager-gui,manager-script,manager-jmx,manager-status" /> 
    

データの移行

  • Tomcatのデータが/usr/local/share/tomcat以下,MySQLのデータが/var/lib/mysqlにあるので,その辺りも持っていく.
  • 移行元から/usr/local/share/tomcat,/etc/tomcat6を持ってくる.

トラブルシューティング

  • yastでTomcat6をインストール."/etc/init.d/tomcat6 start"としても,Tomcatが8080番で待ち受けてくれなかった./etc/tomcat6/tomcat6.confの設定で8080番ポートで待ち受けとなっているところがコメントアウトされているので,それを解除した後,tomcatを再起動したら,8080番でアクセス出来るようになった.その後は,tomcat6.confの該当行をコメントアウトしても解除しても挙動が同じになった.謎だ….
  • "lsof -i"で,ポートの使用状況を確認できる(ポートやファイルの利用状況を調べる(ファイルをオープンしているプロセスを調べる) - yuu_nkjm blog(2012-11-27))."lsof -i|grep 8080"として,何も表示されないので,上記のような操作を行った.8080番で待ち受けている状態で,"lsof -i|grep 8080"としても何も表示されなかった."lsof -i|grep tomcat"としたところ,tomcatがhttp-altポートで待ち受けていることが分かった.http-altが8080という意味らしい.ポート名でgrepかけるだけでなく,サービス名でもgrepせなあかんな.

2011-07-17(Sun) [長年日記] 編集

[サーバまとめ][openSUSE][Monit] Monitの移行のまとめ

移行とインストール

Monitを使って死活監視を行う.

  • YaSTでインストールする.
  • /var/run/monit/を作る.YaSTがディレクトリを作ってくれても良いと思うんだけど,作ってくれないので.
  • /etc/monitrcと/etc/monit.d/以下をコピーする.
  • 「設定ファイルの権限が600(サービスを起動する(?)ユーザだけが読める)とかでないと,monitが起動できない」というTIPSを見かけたが真偽は不明.
  • ConfigurationExamples - Monit のサンプルを見れば設定の仕方は分かるはず.Manual - Monitも読めば万全.

設定

  • /etc/monitrc
    set daemon  3600
        with start delay 240
     
    set logfile syslog facility log_daemon
    set idfile /var/.monit.id
    set statefile /var/.monit.state
    set mailserver localhost
    set mail-format { from: monit@hoge.info }
     
    set alert root@hoge.info  not on {
      INSTANCE
    }
    include /etc/monit.d/*.conf
    
  • /etc/monit.d/hoge.conf
    check process mysql with pidfile /var/lib/mysql/mysqld.pid
      if failed host 127.0.0.1 port 3306 protocol mysql then alert
     
    check host hoge with address 127.0.0.1
      if failed port 80 then alert
      if failed port 8080 then alert
      if failed port 25 then alert
      if failed port 22 then alert
      if failed port 3306 then alert
     
    check filesystem hoge_ext_hdd with path ’/dev/disk/by-id/usb-I-O_DATA_hogehoge-0:0-part1’
      if space usage > 40 % then alert
      if inode usage > 40 % then alert
    

関連ページ


2011-07-18(Mon) [長年日記] 編集

[サーバまとめ][openSUSE][KVM][VirtualBox] ゲストOSとしてのopenSUSE(11.4 64bit)のインストール

はじめに

インストール

インストールの初期画面

  • 言語->日本語
  • ビデオモードはテキストにしない.文字化けすることがあるので.

ようこそ

  • 言語:日本語
  • キーボード:日本語

システム設定

  • 新規インストール
  • 自動設定:利用しない

タイムゾーン

  • ハードウェアの時刻はUTCに設定:OFF(自分の都合の良い方で)
  • 詳細
    • NTPサーバのアドレス:適当に
    • NTPをデーモンとして実行する:ON
    • NTPの設定の保存:ON

デスクトップの選択

  • XFCEデスクトップ:ON.後で追加するのが面倒なため.GUIしか設定ツールが付いていないアプリケーションもあるので,テキストモードだけはつらい.とも思ったけど,テキストモードでもいいかも.

パーティション分割の提案

新しいユーザの作成

  • このパスワードをシステム管理者用のものとしても使用する:ON (どちらでも良い)
  • システムメールの受信:ON(どちらでも良い./etc/aliassesのrootからエイリアスが張られるんだろう.)
  • 自動ログイン:OFF
  • 詳細
    • 認証方法:ローカル(/etc/passwd).ここで,以前のインストールからユーザデータを読み込める様だ.
    • パスワードの暗号化:Blowfish

インストール設定

  • 起動
    • MBRからの起動は無効 (PBRから立ち上がって欲しい)
    • /bootパーティションからの起動が有効になっています.
    • ブートローダのインストール
    • ブートパーティションから起動のみにチェック
    ブートローダの設定
  • インストールパッケージ
    • NovellAppArmorをオフ
    • タブレットPCをON(KVMのマウスのズレの対策.最近のvirt-viewerではやらなくてもOKなのかも.)
    インストール設定1 インストール設定2 インストール設定3
  • 既定のランレベル:5 (3でも良い)
  • ファイアウォールとSSH:ファイアウォールを無効 (SUSEファイヤウォール以外(ルーターとかfail2banとか)でFWを形成するのでオフ.こいつに頼ってもいいかもしれんが.)

インストール後の設定

ホスト名とドメイン名

  • ホスト名,ドメイン名は適当に.
  • DHCPでホスト名を変更:OFF
  • ホスト名をループバックIPに割り当てる:OFF

ネットワーク

YaSTで後から簡単に設定を変えられる.ネットワークが正しく設定できなかったので,オンライン更新でエラーが発生し,やたらと時間がかかってイライラした.「自動更新をスキップ」でなく「次へ」を誤って押してしまったせいかは分からない.

  • ネットワークモード: ifupを使用した従来の方法
  • IPv6のサポートを無効
  • プロキシ:適当に設定する.日本語キーボードと思っても,英語キーボードと思ってもコロンが入力できない….
  • 「ホスト名をループバック IP に割り当てる」はオフにする.

オンライン更新

自動更新をスキップ:インターネットへの接続テスト:プロキシを設定できていないから,テスト出来ない.英語版キーボードのキーレイアウト - yuu_nkjm blog(2012-02-11)

ハードウェア設定

  • プリンタ,サウンドカード,TVカードの設定:特になし.
  • このシステムをAutoYaST用に複製する:On(使い方は後で調べる)./root/autoinstに入るらしい.

初回ログインして直ぐする設定

リモート管理をするため,SSHクライアントから操作できるように環境の設定をしておく.

SSHの設定

fail2banの設定

ユーザ設定の最小限の移行

  • 公開鍵とbashの設定のコピー
    scp -rp 10.2xx.1x.2xx:/home/nkjm/.ssh /home/nkjm
    scp -rp 10.2xx.1xx.2xx:/home/nkjm/.bash* /home/nkjm
    

VirtualBoxのゲストOSとしてインストールする場合

「オープンソース」を使ってみよう (第20回 openSUSE編) 日本 openSUSE ユーザ会

VirtualBoxやVMWareで実行してもらうことを想定するのであれば以下のパッケージを入れておくと良いでしょう:
- virtualbox-guest-kmp-default
- virtualbox-guest-x11
- virtualbox-guest-tools
- vmware-guest-kmp-default

つづき

サーバ環境の再構築

サーバ環境の移行と再構築 - yuu_nkjm blog(2011-07-06)を参考にする.


2011-07-19(Tue) [長年日記] 編集

[サーバまとめ][Linux][openSUSE] pdumpfsの設定

定期実行

"/etc/cron.daily/whole-pdumpfs.sh"に以下の様な内容を記述する.

# vi /etc/cron.daily/whole-pdumpfs.sh
 #!/bin/sh
#PATH=$PATH:/usr/bin
DEST_DIR=/mnt/exthdd/pdumpfs
LOG_DIR=/mnt/exthdd/pdumpfs/log
# Settings
pdumpfs --log-file=$LOG_DIR/exec.log /etc $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
# Data
pdumpfs --log-file=$LOG_DIR/exec.log /srv $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /var $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /usr $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /home $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
# System
pdumpfs --log-file=$LOG_DIR/exec.log /bin $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /boot $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /lib $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /lib64 $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /media $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /opt $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /root $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /sbin $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log
pdumpfs --log-file=$LOG_DIR/exec.log /selinux $DEST_DIR>$LOG_DIR/stdout.log 2>$LOG_DIR/error.log

LVMのスナップショットを使ったデータの整合性を考慮した同期バックアップ - yuu_nkjm blog(2011-08-09)と組み合わせたいんだけど,手が回っていない.


2011-07-20(Wed) [長年日記] 編集

[サーバまとめ][openSUSE][fail2ban] fail2banのまとめ

既存のサーバから移行する場合

  • 基本的には,jail.confだけコピーすればOK.独自のフィルタや独自のアクションを追加していたら,action.d/やfilter.d/もコピーする.
     cp -a  /prev/etc/fail2ban/jail.conf /etc/fail2ban
    

新規インストールの場合

  • yastでインストールする.
  • fail2banサービスを起動する(/etc/init.d/fail2ban start)
  • fail2banサービスの自動起動の設定する.(chkconfig fail2ban on)
  • jail.confの設定.重要なのは以下.
    [DEFAULT]
    # banしないIPアドレス
    ignoreip = 127.0.0.1 192.168.150.0/24
    # 禁止する時間
    bantime  = 60000
    
    SSHのアクセスに基づいてbanする.
    [ssh-iptables]
    # チェックのオン・オフ
    enabled  = true
    filter   = sshd
    action   = iptables-allports[name=SSH]
             sendmail-whois[name=SSH, dest=hoge@nkjm.info, sender=fail2ban@nkjm.info]
    # sshのログの場所の指定
    logpath  = /var/log/messages
    
  • [apache-tcpwrapper]もenable=trueにしても良いかも.

TIPS

フィルタのテスト
  • "fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/sshd.conf"のようにするとフィルタのテストができる.
  • "fail2ban-regex /var/log/apache2/error_log /etc/fail2ban/filter.d/apache-noscript.conf"あたりも良く使いそう.
  • 起動のテスト

    fail2ban-clientを直に叩いてみる.

    /usr/bin/fail2ban-client start
    WARNING 'action' not defined in 'php-url-fopen'. Using default value
    ERROR  Error in action definition
    ERROR  Errors in jail 'php-url-fopen'. Skipping...
    

2011-07-21(Thu) [長年日記] 編集

[Windows 7 (64bit)] CrystalCPUIDでCPUの電力を制御する

  • 64bitOSで動かすときは,64bit版をダウンロードすることに注意する.
  • 起動するためのショートカット
     E:\ProgramFiles\CrystalCPUID\CrystalCPUIDx64.exe /CQ /HIDE /RESI
    
  • 設定ファイル(CrystalCPUIDx64.ini)の中身
    [Setting]
    Language=jp
    ShowConfirmedDialog=1
    CqTrigerType=-2
    CqExitMode=0
    CqWaitTime=0ms
    CqDualWaitTime=1000ms
    CqMaxFID=6
    CqMidFID=2
    CqMinFID=0
    CqMaxVID=28
    CqMidVID=28
    CqMinVID=23
    CqMidThresholdUp=80%
    CqMinThresholdUp=70%
    CqMaxThresholdDown=30%
    CqMidThresholdDown=20%
    CqMaxIntervalTime=5000ms
    CqMidIntervalTime=500ms
    CqMinIntervalTime=500ms
    CqModeUpType=1
    CqModeDownType=1
    CqEnableVoltage=1
    RtcXpoint=1306
    RtcYpoint=450
    MethodType=0
    TimerType=0
    

2011-07-22(Fri) [長年日記] 編集

[IntelliJ][PhpStorm][PHP][Python] JetBrains IntelliJ IDEA11.1の設定

下準備

  1. XAMPPなどでPHP環境を作っておく.
  2. Pythonのインタプリタもインストール

設定

  1. キーバインディングを変更する.Settings→KeymapからEclipseを選択する.
  2. カーソルを行末より後ろにいかないようにする.Settings Editorから'Allow placement of caret after end of line'オプションのチェックを消す.

一般的なプラグインのインストール

  • 環境設定を共有する.「IntelliJ Configuration Server Plugin」をインストールすることで,複数のIntelliJ上で環境設定を共有することが出来る.インストールを終えIDEの再起動をすると,JetBrainsアカウントを使ってConfiguration Server経由で設定を共有するためのログインダイアログがでる.ログインに成功すると,下図のように右下の緑アイコンがでる.IntelliJ IDEA :: Settings Synchronizationを参考.
画像の説明

Python開発環境の設定

  • phpの開発ができるようにする.Plugin-manager-> Browse repositoriesを選択する.「Python」をインストールする.
  • メニューバーのプロジェクトの構成(Project Structure)を選んで,プロジェクトの設定画面をだす.Project SDKの欄でNewを押して,Python SDKを選択.パスとして,Pythonのインストールディレクトリ(C:\Python27\python.exe)を選択する.これはCreate New Projectのところでもできそう.

PHP開発環境の設定

  • phpの開発ができるようにする.Plugin-manager-> Browse repositoriesを選択する.「PHP」「SmarterEditor」をインストールする.

参考ページ


2011-07-23(Sat) [長年日記] 編集

[Windows 7 (64bit)] Windows 7標準バックアップ機能で生成されるフォルダ

M:\MediaID.bin
M:\Hoge(コンピュータ名)
M:\WindowsImageBackup

コントロールパネルから呼び出せるバックアップ機能を使って,Mドライブにバックアップを取ったところ,上記の三つが作成された.


2011-07-30(Sat) [長年日記] 編集

[Servlet][Java] Servletで日本語のリクエストパラメータを取得する

下書き.未検証.暇な時にStringのバイト配列を出力させて,正しいか調べる.

GETによるリクエスト

ISO_8859_1の範囲だとOK

ab cd
↓(ブラウザがGET: UTF-8でエンコード)
ab%20cd
↓(request.getParameter: ISO_8859_1でデコード)
ab cd

HttpServletRequest.getParameterの時にバイト列から文字列に自動で変換されるが,この変換が間違っている.誤った変換を元に戻して(getBytes),正しい変換(new String(byteData, "UTF-8"))をし直す必要がある.

ウィキペディア
↓(ブラウザがGET: UTF-8でエンコード)
%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%87%e3%82%a3%e3%82%a2
↓(request.getParameter: ISO_8859_1でデコード)
文字化けした何か
↓(getBytes: ISO_8859_1でエンコード)
%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%87%e3%82%a3%e3%82%a2
↓(new String(byteData, "UTF-8"))
ウィキペディア

POSTによるリクエスト

public class Sample extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{    
    request.setCharacterEncoding("UTF-8");
    String val = request.getParameter("name");
  }
}

極めてスマートに文字化けが回避出来るのですが、このメソッドではリクエストボディに含まれるデータの文字コードしか設定できません。「POST」メソッドを使った場合にはクライアントから送られてくるパラメータはリクエストボディに含まれるので問題ありませんが、「GET」メソッドを使った場合にはパラメータはURIの部分に含まれています。その為「setCharacterEncoding」メソッドを使ってもパラメータの文字コードの設定は行えませんので注意してください。


2011-07-31(Sun) [長年日記] 編集

[fml] FMLのReply-toをメーリングリストのアドレスではなく,送信者のアドレスにする

Reply-toをMLのアドレスでなく,送信元アドレス(from)に設定したい.なお,fmlのバージョンは4.0である.

makefml configを使っての変更を試みたが出来なさそうだった.そこで,直接config.phをいじることにした.

  • 設定のコピー
    cd /var/spool/ml/ml-hogehoge
     
    cp -a config.ph config.ph.2011-08-22
    
  • 設定ファイルの編集.”$Envelope{'oh:reply-to:'}=1;”を書き加える.
    emacs config.ph
    # $FORCE_COMMAND_REPLY_TO = $From_address;
    $Envelope{'oh:reply-to:'}=1;
    
  • 編集結果の確認
    diff config.ph config.ph.2011-08-22
     
    860,863d859
    < # $FORCE_COMMAND_REPLY_TO = $From_address;
    < $Envelope{'oh:reply-to:'}=1;
    

トップ «前月 最新 翌月» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|