TrinityT's Wiki
http://w.atwiki.jp/trinityt/
TrinityT's Wiki
ja
2014-06-02T18:56:51+09:00
1401703011
-
Linuxワンライナー
https://w.atwiki.jp/trinityt/pages/21.html
**Linuxワンライナー
***ある名前を含むコマンドのプロセスを一括kill
>||
ps aux | grep hoge | cut -c10-14 | xargs kill -9
||<
***ダミーデータ作成(10MBのアルファベット&10進数)
>||
cat /dev/urandom | tr -c -d "[:alnum:]" | head -c 1000000 > test.txt
||<
***Redisにデータを入れる(setex)
>||
for i in `seq 1 1 10`; do cat test.txt | redis-cli -x setex "dummy_$i" 1000; done;
||<
***あるフォルダ以下のファイル文字コード一括確認
>||
find . | xargs nkf --guess
||<
***MacOSX10.9以降(サーバ) → Linux(クライアント)のSambaマウント
sudo mount -t cifs -v -o user=hoge,nounix,sec=ntlmssp //<IP>/<ディレクトリ> <マウント先ディレクトリ> ※オプションのnounix、secが重要。
>||
$ sudo mount -t cifs -v -o user=hoge,nounix,sec=ntlmssp //192.168.0.1/hoge /mnt/fuga
||<
***バックグラウンドでのポートフォワード
ssh -fNL <ローカルポート>:IP:<ターゲットポート> <ターゲットサーバ>
>||
$ ssh -fNL 6667:irc.hoge:6667 gate.hoge.jp
||<
***一括Grep検索&置換
>||
for FILE in `grep -l tmp_ *`; do cp $FILE $FILE.bak; sed -e "s/tmp_//g" $FILE.bak > $FILE; done
||<
***フォルダごとのディスク使用量を大きいものから10件表示するコマンド
http://q.hatena.ne.jp/1194317312
>||
du -k / | sort -n| tail -10
||<
***カレントフォルダ以下のファイル&ファイルの中身をgrepする
例:ファイル名にlogを含む、かつtar.gzを含まないファイルの、"2008/11/11"を含む行を表示
>||
find ./ | grep -e "log" | grep -v "tar.gz" | xargs grep -e "2008/11/11"
||<
***.svnフォルダを消去したい場合のコマンド
>||
find . -name .svn -type d -exec rm -rf {} \;
||<
***ruby gemのアップデートコマンド
>||
gem update --system
||<
***rails関連ライブラリの一括アンインストール
grepでactive~とactionのライブラリ取得→ループ
>||
gem list | grep "^\(active\|action\)" | while read n v; do gem uninstall $n -aix ; done
||<
***CPU情報確認
>||
cat /proc/cpuinfo
||<
2014-06-02T18:56:51+09:00
1401703011
-
トップページ
https://w.atwiki.jp/trinityt/pages/1.html
*TOP
最初はとりあえずTOPにとりとめなく書いていくことにする。
**ライブラリ置き場リンク
-Apache http://www.meisei-u.ac.jp/mirror/apache/httpd/
-Tomcat http://ftp.kddilabs.jp/infosystems/apache/tomcat/
-JBossAS http://www.jboss.org/jbossas/
-Java関係 http://www.oracle.com/technetwork/java/archive-139210.html ※最新以外のJDKはOracle開発者アカウントが必要。
**メールサーバ
***メールキューを確認
>||
#sendmail
sudo find /var/spool/mqueue/ -type f | wc -l
#Postfix
sudo mailq
||<
***メールキューを削除
>||
#sendmail
sudo rm -f /var/spool/mqueue/*
#Postfix
sudo rm -f /var/spool/postfix/deferred/*
||<
**MySQL
***初期設定
>||
mysql -u root
GRANT ALL PRIVILEGES ON *.* TO hogehoge@"%" IDENTIFIED BY 'passpass' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO hogehoge@localhost IDENTIFIED BY 'passpass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
||<
***iptables
CentOSのデフォルトで外部サーバからアクセスできないようになっているので追加。
>||
/sbin/iptables -I INPUT -p tcp -m tcp --dport 3306 --syn -j ACCEPT
||<
**Apache
***コンパイルオプション
-2.0系 http://httpd.apache.org/docs/2.0/ja/programs/configure.html
例:2.0系 (インストールフォルダ=/usr/local/apache2.0)
>||
./configure --prefix=/usr/local/apache2.0 --enable-mods-shared=all --enable-proxy --enable-ssl --enable-cache --enable-disk-cache --enable-mem-cache
||<
-2.2系 http://httpd.apache.org/docs/2.2/ja/programs/configure.html
例:2.2系
>||
./configure --enable-mods-shared=all --enable-proxy --enable-proxy-balancer --enable-ssl --enable-cache --enable-disk-cache --enable-mem-cache
||<
***mod_cacheディレクティブ例
>||
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
LoadModule disk_cache_module modules/mod_disk_cache.so
<IfModule mod_disk_cache.c>
CacheRoot /var/cache/apache2/
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>
</IfModule>
||<
**mod_rewrite
****特定のパスにリダイレクトする。
ex) /〜 を /m/〜にリダイレクト
>||
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^/(.*)$ /m/$1 [R,L]
||<
****DoCoMoのiモードID取得可能にする。
>||
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|jpeg)$ [NC]
RewriteCond %{QUERY_STRING} !guid=ON
RewriteCond %{QUERY_STRING} !sid=
RewriteCond %{QUERY_STRING} !sSpnm=
RewriteRule ^/(.*)$ /$1?guid=ON [R,L]
||<
***mod_proxy_balancer設定例(tomcatクラスタリング)
****sticky session使用
>||
ProxyPass / balancer://test/ stickysession=JSESSIONID nofailover=On timeout=2
<Proxy balancer://test/>
BalancerMember ajp://192.168.0.11:8009 keepalive=On loadfactor=100 retry=5 route=node01
BalancerMember ajp://192.168.0.12:8009 keepalive=On loadfactor=100 retry=5 route=node02
</Proxy>
||<
****sticky session未使用
>||
ProxyPass / balancer://test/ nofailover=On timeout=2
<Proxy balancer://test/>
BalancerMember ajp://192.168.0.11:8009 keepalive=On loadfactor=100 retry=5
BalancerMember ajp://192.168.0.12:8009 keepalive=On loadfactor=100 retry=5
</Proxy>
||<
***ソースで入れたApacheをアップグレードしたい
基本、最新版ソースを普通にconfigure→make→make installすればOK。confは上書きされない。
***mod_cacheでキャッシュされないよ!
Basic認証がかかってるとされないぞ。
***パフォーマンスチューニング
以下の項目を見直してみよう。
-mod_cache、mod_disk_cacheを使う
-MaxClients接続数を見直す
***ログローテーション方法
rolatelogsを使ってローテーションする場合
>||
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log.%Y%m%d 86400" common
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error_log.%Y%m%d 86400"
||<
**Tomcatインストール後設定
***グローバルパラメタ
-tomcat/bin/setenv.shを作成し、パラメタを追加
例:
>||
CATALINA_OPTS="-server -Xms1024M -Xmx1024M -XX:PermSize=128m -XX:MaxPermSize=256m -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP"
||<
※「-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP」はWindowsでの機種依存文字対応に使用する。
http://d.hatena.ne.jp/cazzie/20080312/1205329765
***サービス化(CentOS5)
バイナリからインストールした場合のサービススクリプト。
以下を/etc/rc.d/init.d/tomcat 以下に置く。
>||
#!/bin/sh
#
# chkconfig: - 80 20
# description: tomcat
# Source function library.
. /etc/init.d/functions
JAVA_HOME=/usr/java/jdk1.6.0_24
CATALINA_HOME=/opt/tomcat
TOMCAT_USER=tomcat
TMP_DIR=/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
PIDFILE=/var/run/tomcat.pid
LOCKFILE=/var/lock/subsys/tomcat
DAEMON=$CATALINA_HOME/bin/jsvc
start(){
#
# Start Tomcat
#
if [ -z $(/sbin/pidof java) ]; then
echo "Starting tomcat"
sudo -u tomcat $CATALINA_HOME/bin/startup.sh
touch $LOCKFILE
echo_success
else
echo "tomcat already running"
echo_failure
fi
echo ""
}
stop(){
#
# Stop Tomcat
#
if [ ! -z $(/sbin/pidof java) ]; then
echo "Shutting down tomcat"
sudo -u tomcat $CATALINA_HOME/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f $LOCKFILE
echo_success
else
echo "tomcat not running"
echo_failure
fi
echo ""
}
status() {
if [ ! -z $(/sbin/pidof java) ]; then
echo "tomcat already running"
else
echo "tomcat not running"
fi
echo ""
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
version)
$CATALINA_HOME/bin/catalina.sh version
;;
*)
echo $"Usage: tomcat {start|stop|restart|status}"
exit 1
;;
esac
||<
***ログローテーション方法
catalina.outは通常ローテーション処理されないため、「/usr/local/tomcat/bin/catalina.sh」を以下のように書き換えて対応する。
1. 以下の行をコメントアウト
変更前
>||
touch "$CATALINA_BASE"/logs/catalina.out
||<
変更後
>||
#touch "$CATALINA_BASE"/logs/catalina.out
||<
2. 以下の行を変更(2箇所ある)
※Apacheのrotatelogsが「/usr/local/apache2/bin」に存在する場合。「540」はロケールを日本時間に合わせるために記述。~
変更前
>||
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
||<
変更後
>||
2>&1 | /usr/local/apache2/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d 86400 540 &
||<
参考:
http://blog.goo.ne.jp/a24kane2000/e/e84b45ecf07df708cb089c12cbae5994
http://d.hatena.ne.jp/hogem/20080220/1203439193
***server.xml AJP Connectorの調整
デフォルトでは設定不足。特にconnectionTimeoutなどは重要!
>||
<Connector port="8009" protocol="AJP/1.3"
maxThreads="200" minSpareThreads="25" maxSpareThreads="200"
backlog="100" connectionTimeout="20000"
enableLookups="false" redirectPort="8443" />
||<
http://www.atmarkit.co.jp/fjava/rensai4/troublehacks06/troublehacks06_3.html
http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html
**IBM Java(J9)について
***ダンプファイル
IBMJavaはデフォルトで5分おきにjavacore dumpを出力する模様。
Tomcat起動時などで抑制したい場合は、「-Xdump:none」環境変数を指定して起動するようにする。
>||
Usage:
-Xdump:help Print general dump help
-Xdump:none Ignore all previous/default dump options
-Xdump:events List available trigger events
-Xdump:request List additional VM requests
-Xdump:tokens List recognized label tokens
-Xdump:dynamic Enable support for pluggable agents
-Xdump:what Show registered agents on startup
-Xdump:<type>:help Print detailed dump help
-Xdump:<type>:none Ignore previous dump options of this type
-Xdump:<type>:defaults Print/update default settings for this type
-Xdump:<type> Request this type of dump (using defaults)
Dump types:
-Xdump:console Basic thread dump to stderr
-Xdump:system Capture raw process image
-Xdump:tool Run command line program
-Xdump:java Write application summary
-Xdump:heap Capture raw heap image
-Xdump:snap Take a snap of the trace buffers
||<
**MySQL
***レプリケーション時の注意点
my.cnf指定(マスター)
>||
log-bin # バイナリログ出力
server-id=1 # マスターサーバのID
expire_logs_days=30 # バイナリログを30日で削除
||<
参考サイト
-http://wiki.bit-hive.com/tomizoo/pg/MySQL%20%A5%EC%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%C0%DF%C4%EA
-http://antas.jp/blog/ina/archives/2007/04/mysql.html
**Railsいろいろ
***RailsでOracle
+アダプタインストール
※標準アダプタではセッションDB格納ができないため、oracle_enhanced-adapterを使用するのが良い。
>||
gem install activerecord-oracle_enhanced-adapter
||<
+注意点
・rake db:resetはつかえない(drop databaseが使えないため)
・テーブル名やインデックス付加の場合の名前などは30文字を超えないように注意
**スクリプト
***POST(perl)
>||
use Socket;
$host = "localhost";
$path = "test/test/";
$data = "testdata1=test";
socket(SOCKET, PF_INET, SOCK_STREAM, 0);
connect(SOCKET, pack_sockaddr_in(80, inet_aton($host)));
select(SOCKET); $|=1; select(STDOUT);
print SOCKET "POST /$path HTTP/1.0\r\n";
print SOCKET "Content-Length: ".length($data)."\r\n";
print SOCKET "\r\n";
print SOCKET $data;
while (<SOCKET>){print $_;}
||<
***POST(ruby)
>||
require 'net/http'
Net::HTTP.version_1_2
host = "localhost"
port = "80"
uri = "test/test/"
param = "test=test1"
Net::HTTP.start(host, port) {|http|
response = http.post(uri , param)
puts response.body
}
||<
**vim
***コメント行削除(Apacheの設定ファイル等)
>||
:g/^#.*$/d
||<
***先頭に空行を含むコメント行削除(Apacheの設定ファイル等)
>||
:g/^ *#.*$/d
||<
***空行削除
>||
:g/^$/d
||<
**JavaScript
***二度押し防止
>||
function doNotDouble(form) {
var elements = form.elements;
for (var i = 0; i < elements.length; i++) {
if (elements[i].type == 'submit') {
elements[i].disabled = true;
}
}
}
||<
>||
# Viewでこんな感じで指定
onClick="doNotDouble(form);"
||<
----
2013-09-17T21:42:35+09:00
1379421755
-
メニュー
https://w.atwiki.jp/trinityt/pages/2.html
#ref(http://d.hatena.ne.jp/images/diary/T/TrinityT/TrinityT.jpg)
**メニュー
-[[トップページ]]
-[[FAQ]]
-[[プラグイン紹介>プラグイン]]
-[[メニュー]]
-[[メニュー2]]
----
-[[LinuxMint構築]]
-[[Linuxワンライナー]]
-[[Emacs情報]]
-[[RVM]]
-[[Javaチェックシート]]
-[[携帯サイトIP制限リスト]]
-[[反省材料]]
-[[サンプルコード_Ruby]]
-[[サンプルコード_Java]]
-[[sandbox]]
**リンク
-[[@wiki>>http://atwiki.jp]]
-[[@wikiご利用ガイド>>http://atwiki.jp/guide/]]
//**更新履歴
//#recent(20)
&link_editmenu(text=ここを編集)
2013-06-25T16:10:02+09:00
1372144202
-
LinuxMint構築
https://w.atwiki.jp/trinityt/pages/20.html
2012-07-05T15:40:09+09:00
1341470409
-
反省材料
https://w.atwiki.jp/trinityt/pages/13.html
2011-10-05T08:59:37+09:00
1317772777
-
Emacs情報
https://w.atwiki.jp/trinityt/pages/15.html
*Emacs
**テクニック
***空行削除
M-x → flush-lines → ^$
***置換時に改行指定
C-q C-j
**簡易キーバインドシート
|上下左右へ移動 | C-p, C-n, C-b, C-f|
|行頭・行末へ移動 |C-a, C-e|
|1画面進む・戻る |C-v, M-v|
|ファイルの先頭・最後へ |M-<, M->|
|操作キャンセル |C-g|
|強制終了 |C-x C-c|
|一時中断 |C-z (復帰はシェルからfg)|
|カーソルのある1文字削除 |C-d|
|アンドゥ |C-x u|
|カーソル位置から行末まで削除 |C-k|
|カーソル位置にマーク |C-SPC|
|リージョンをカット |C-w (C-SPCとの合わせ技)|
|リージョンをコピー |M-w (C-SPCとの合わせ技)|
|ペースト |C-y|
|履歴ペースト |C-y 後に M-y|
|ファイル読み込み |C-x C-f|
|上書き保存 |C-x C-s|
|指定ファイルに保存 |C-x C-w|
|ウィンドウを縦に2分割 |C-x 2|
|別のウィンドウを消す |C-x 1|
|ウィンドウ間でカーソル移動 |C-x o|
|バッファのリスト |C-x C-b|
|インクリメンタル検索 |C-s|
|文字列検索 |M-x occur|
|文字列置換 |M-%|
|カーソル以降置換 |M-x replace-string|
** .emacs
>||
;;; X-Setting
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(column-number-mode t)
'(current-language-environment "Japanese")
'(display-time-mode t)
'(scroll-bar-mode (quote right))
'(show-paren-mode t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 110 :width normal :foundry "unknown" :family "IPAGothic")))))
;;; デフォルトload-path
(add-to-list 'load-path "~/.emacs.d/elisp")
;;; 基本設定
(setq-default tab-width 4) ;;tab4文字
(setq scroll-conservatively 35 scroll-margin 0 scroll-step 1) ;;スクロール量を1にする
(setq line-number-mode t) ;;カーソル行番号表示
(setq inhibit-startup-message t) ;;スタートアップメッセージ非表示
(display-time) ;;auto-compression-mode t) ;;日本語info文字化け防止
(show-paren-mode 1) ;;対応括弧ハイライト
(setq make-backup-files nil) ;;; *.~ とかのバックアップファイルを作らない
(setq auto-save-default nil) ;;; .#* とかのバックアップファイルを作らない
(setq x-select-enable-clipboard t) ;;; Kill-ringとXのclipboardを共有する
;;; F11でfullscreenを切り替えられるようにする
(defun switch-full-screen ()
(interactive)
(shell-command "wmctrl -r :ACTIVE: -btoggle,fullscreen"))
(global-set-key [f11] 'switch-full-screen)
;;; メニューを日本語化
(require 'menu-tree)
;;; line-number表示
(require 'linum)
(global-linum-mode t)
(setq linum-format "%5d")
;; Interactively Do Things (highly recommended, but not strictly required)
(require 'ido)
(ido-mode t)
;;; IIIMECF設定
(add-to-list 'load-path "~/.emacs.d/elisp/iiimecf")
(setq iiimcf-server-control-hostlist (list
(concat "/tmp/.iiim-" (user-login-name) "/:0.0")))
(setq iiimcf-server-control-default-language "ja")
(setq iiimcf-server-control-default-input-method "atokx3")
(setq default-input-method 'iiim-server-control)
(require 'iiimcf-sc)
(global-set-key [?\S-\ ] 'toggle-input-method)
;; Rinari
(add-to-list 'load-path "~/.emacs.d/elisp/rinari")
(require 'rinari)
;;; rhtml-mode
(add-to-list 'load-path "~/.emacs.d/elisp/rhtml")
(require 'rhtml-mode)
(add-hook 'rhtml-mode-hook
(lambda () (rinari-launch)))
;;; emacs-nav
(add-to-list 'load-path "~/.emacs.d/elisp/emacs-nav")
(require 'nav)
(global-set-key "\C-x\C-d" 'nav-toggle)
;;; elscreen
(add-to-list 'load-path "~/.emacs.d/elisp/elscreen")
(require 'elscreen)
||<
**IIIMECFについて
ATOK標準のキーバインドを使用可能とするため、iiimcf.el(IIIMECF付属)に以下のパッチを当てる。
***パッチの当て方
>||
$ patch iiimcf.el < iiimcf.patch
||<
***iiimcf.patch
>||
--- lisp/iiimcf.el 2007-12-23 03:33:55.000000000 +0900
***************
*** 284,289 ****
--- 284,302 ----
(defvar iiimcf-keycode-spec-alist
`((13 10 0)
+
+ (11 37 65535) ; Ctrl + k
+ (12 39 65535) ; Ctrl + l
+ (14 40 65535) ; Ctrl + n
+
+ (21 117 65535) ; Ctrl + u
+ (9 118 65535) ; Ctrl + i
+ (15 119 65535) ; Ctrl + o
+ (16 120 65535) ; Ctrl + p
+
+ (2 38 65535) ; Ctrl + b
+ (7 27 65535) ; Ctrl + g
+
(32 32)
,@(mapcar #'(lambda (x) (list x x 0))
(iiimcf-numseq 1 31))
||<
2011-07-25T15:05:34+09:00
1311573934
-
RVM
https://w.atwiki.jp/trinityt/pages/19.html
2011-07-11T18:33:28+09:00
1310376808
-
sandbox
https://w.atwiki.jp/trinityt/pages/18.html
2011-05-31T19:48:34+09:00
1306838914
-
サンプルコード_Ruby
https://w.atwiki.jp/trinityt/pages/14.html
2010-12-15T11:04:36+09:00
1292378676
-
携帯サイトIP制限リスト
https://w.atwiki.jp/trinityt/pages/17.html
2010-09-27T18:50:09+09:00
1285581009