カテゴリー: Linux
2018年11月08日
grep [検索対象文字列(引用符不要)] [検索対象パス] -r --include=[ファイルパターン]

これで再帰的に検索し [ヒットしたファイル: ヒットした文字列] が表示される
ヒットした文字列の出力が不要でヒットしたファイルのみ表示させる場合は -rl
カテゴリー: Linux
2018年04月18日
:from行,to行 s/置換対象文字列/置換後文字列/g
カテゴリー: Linux
2017年04月26日
アクセスログはURLエンコードされているので
tail -f access_log | perl -ne 'use URI::Escape; print uri_unescape($_);'

エラーログはURLエンコードの%がさらに\xになっているので
tail -f error_log | perl -ne 's/\\x(..)/pack("C",hex($1))/eg;print $_;'

PHPで出力するなら
echo urldecode(str_replace('\\x', '%', '対象の文字列'));
カテゴリー: Linux
2017年03月14日
ps -aufxww
で各プロセスの詳細を知ることができる
カテゴリー: Linux
2017年01月13日
du -h --max-depth 0 *調べたいディレクトリのパス*

【--max-depth 0】で指定したディレクトリの容量を表示
【--max-depth 1】なら指定したディレクトリ内のファイル/ディレクトリの容量一覧を表示

ディレクトリの容量降順で表示させる場合は【| sort -n -r】を追加
その際、表示する単位を揃えた方が把握しやすいので【-m:単位をMBで表示】のオプションに
du -hm --max-depth 0 *調べたいディレクトリのパス* | sort -n -r


全体の容量を確認する場合は
df -h
カテゴリー: Linux
2016年05月22日
/etc/ssh/sshd_config

UseDNS no
を追記すれば解決する
カテゴリー: Linux
2015年01月29日
.bashrc に

stty stop undef
stty start undef

を追記すると、スクリーンロックのショートカットが解除されて
リバースではないインクリメンタルサーチ(=Ctrl+Rの逆順)が出来るようになる
カテゴリー: Linux
2014年12月11日
一括で設定するなら編集画面の先頭で環境変数を定義

LANG=ja_JP.UTF-8
* * * * * ~~test.sh

個別に設定するなら
* * * * * export LANG=ja_JP.UTF-8; ~~test.sh

UTF-8の場合は「 ja_JP.UTF-8 」
Shift_JISの場合は「 ja_JP.SJIS 」
EUC-JPの場合は「 ja_JP.eucJP 」

参考:http://www.koikikukan.com/archives/2013/08/12-000300.php
カテゴリー: Linux
2014年09月11日
【手で叩く時】
rsync -avz --checksum -e ssh {account}@{host}:{path}

◆ポイント
-e ssh でSSHで接続(実行中にパスワードの入力を求められる)
--password-file を付けると「daemonでの実行時でしか使えません」と怒られる
(The --password-file option may only be used when accessing an rsync daemon.)


【cronやbashなどで実行するとき】
rsync -avz --checksum --password-file={passwd_file} {module_account}@{host}::{module_name}

◆ポイント
【外部サーバー側の作業】
/etc/rsync.conf と /etc/rsync.secrets を設置
/etc/rsync.secrets のパーミッションは0600に設定
rsync --daemon --config=/etc/rsync.conf を実行してデーモンを起動しておく
(&再起動時にも有効になるように /etc/rc.d/rc.local に rsync --daemon --config=/etc/rsync.conf を追記)

【操作サーバー側の作業】
-e ssh は外す
アカウントは /etc/rsync.conf の「auth users」で指定したrsync用のユーザー(useraddで設定するユーザーとは別)
:以降にはパスを記述するのではなく /etc/rsync.conf で定義した「::モジュール名」を記述
passwd_file のパーミッションを 0600 に設定しないと --password-fileが通らない

◆cronやbashなどで実行した時の動作確認
1>>rsync.log 2>>rsync.error_log を最後に付ければ実行ログとエラーログを確認できる

◆ハマりどころ1
daemon 実行時には -e ssh を外さないとパスワードを聞かれる

◆ハマりどころ2
/etc/rsync.secrets には {module_account}:{module_password} にを記述し、
それに対応させる passwd_file には {module_password} のみを記述する

== /etc/rsync.conf の記述例 ==

» 続きを読む
カテゴリー: Linux
2014年08月08日
#!/bin/sh
WORK_DIR="/*output_directory_path*/"
PWFILE="/*password_file_path*/"

TABLES=()
TABLES=(${TABLES[@]} "*table_a*")
TABLES=(${TABLES[@]} "*table_b*")

for (( I = 0; I < ${#TABLES[@]}; ++I ))
do
DUMP_SQL="$WORK_DIR/${TABLES[$I]}.sql"
mysqldump --defaults-extra-file=$PWFILE -u*account* *db_name* --tables ${TABLES[$I]} > $DUMP_SQL
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
done


【概要】
*output_directory_path*
→ダンプファイル出力先ディレクトリ

*password_file_path*
→MySQL5.6からはコマンドライン上でパスワードを入力するとWarningエラーが出るので
パスワードの内容を設定した以下の2行を記述したファイルをオプションで読み込ませる

[mysqldump]
password=*your_password*

*table_xxx*
→ここにダンプしたいテーブル名を記述し、出力したい分だけ列挙する

perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
→INSERT文の各レコードの区切りに改行を挿入してエディタで開きやすく&扱いやすく置換