2016-12-20

連番ファイルを100個作る

連番ファイルは

# touch file{1..100}

ってすれば、file1からfile100という空っぽのファイルを作ってくれる。


# touch file{001..100}

ってすれば、file001, file002, ...みたいにゼロ埋めしてくれて桁が揃う。





10KBのファイルを100個作りたかったら


# dd if=/dev/zero of=file bs=1024 count=10


ってやって10KBのファイルを作ってから


# for i in `seq -w 1 100`; do  cp file file${i}; done


ってやれば、file001, file002, ...って作れる。

2016-12-13

wgetでサイトをバックアップ

これでいけるかと。

wget -e robots=off\
  --output-file=./wget.log\
  --no-cache\
  --html-extension\
  --convert-links\
  --page-requisites\
  --restrict-file-names=nocontrol,windows\
  --domains=www.example.com\
  --no-parent\
  --mirror\
  --wait=1\
  --waitretry=1\
  --timeout=5\
  http://www.example.com/


WordPressサイトは、feedを取得しないようにするとこうなる。

wget -e robots=off\
  --output-file=./wget.log\
  --no-cache\
  --html-extension\
  --convert-links\
  --page-requisites\
  --restrict-file-names=nocontrol,windows\
  --domains=www.example.com\
  --no-parent\
  --mirror\
  --wait=1\
  --waitretry=1\
  --timeout=5\
  --exclude-directories=/feed\
  http://www.example.com/


あと、コメントのフィードリンクがページ中にあると、せっかくダウンロードしたページがフォルダに変わってしまって

feed

っていうファイルだけになってしまうので、先にこちらを参考にlinkを消してください。

■[WordPress] コメントの RSS フィードリンクを削除する
http://jz5.jp/2013/11/23/remove-wordpress-comment-rss/

remove_action('wp_head', 'feed_links_extra', 3);

だけ追加してもOKだった。


その他、wget のオプションはここがすごくわかりやすかった。

■ダウンロードコマンドwgetのオプション一覧(linux)
http://blog.layer8.sh/ja/2012/03/31/wget_command/

2016-11-26

apachectl fullstatus の Request 列の改行を制御する

[root@websv ~] # which apachectl
/usr/sbin/apachectl

[root@websv ~] # less /usr/sbin/apachectl
...
# |||||||||||||||||||| START CONFIGURATION SECTION  ||||||||||||||||||||
# --------------------                              --------------------
#
# the path to your httpd binary, including options if necessary
HTTPD='/usr/sbin/httpd'
#
#
# a command that outputs a formatted text version of the HTML at the
# url given on the command line.  Designed for lynx, however other
# programs may work.
if [ -x "/usr/bin/links" ]; then
  LYNX="/usr/bin/links -dump"
else
  LYNX=none
fi
#
# the URL to your server's mod_status status page.  If you do not
# have one, then status and fullstatus will not work.
STATUSURL="http://websv:80/server-status"
...

[root@websv ~] # man links
...
-dump-width (alias for document.dump.width)
Width of the dump output.

...

[root@websv ~] # /usr/bin/links -dump http://websv:80/server-status/
...
Srv  PID   Acc  M CPU  SS  Req Conn Child Slot  Client     VHost        Request
GET
0-0 19019 0/7/7 _ 0.00 58  0   0.0  0.03  0.03 127.0.0.1 websv01:80 /server-status
HTTP/1.1
GET
1-0 19020 0/7/7 _ 0.00 18  0   0.0  0.03  0.03 127.0.0.1 websv01:80 /server-status/
HTTP/1.1
GET
2-0 19021 0/6/6 W 0.00 0   0   0.0  0.03  0.03 127.0.0.1 websv01:80 /server-status/
HTTP/1.1
GET
3-0 19022 0/6/6 _ 0.00 178 0   0.0  0.03  0.03 127.0.0.1 websv01:80 /server-status
HTTP/1.1
GET
4-0 19023 0/6/6 _ 0.00 118 0   0.0  0.03  0.03 127.0.0.1 websv01:80 /server-status
HTTP/1.1

...

[root@websv ~] # /usr/bin/links -dump http://websv:80/server-status/ -dump-width 192
...
Srv  PID   Acc  M CPU  SS  Req Conn Child Slot  Client     VHost              Request
0-0 19019 0/7/7 _ 0.00 39  0   0.0  0.03  0.03 127.0.0.1 websv01:80 GET /server-status HTTP/1.1
1-0 19020 0/6/6 W 0.00 0   0   0.0  0.03  0.03 127.0.0.1 websv01:80 GET /server-status/ HTTP/1.1
2-0 19021 0/6/6 _ 0.00 170 0   0.0  0.03  0.03 127.0.0.1 websv01:80 GET /server-status HTTP/1.1
3-0 19022 0/6/6 _ 0.00 159 0   0.0  0.03  0.03 127.0.0.1 websv01:80 GET /server-status HTTP/1.1
4-0 19023 0/6/6 _ 0.00 99  0   0.0  0.03  0.03 127.0.0.1 websv01:80 GET /server-status HTTP/1.1
...

2016-11-22

MySQL サーバーシステム変数 のデフォルトを確認する方法

サーバーのコンパイル時のデフォルトおよび読み取られるオプションファイルに基づいて、サーバーが使用する値を表示するには、次のコマンドを使用します。
mysqld --verbose --help


すべてのオプションファイルの設定を無視し、サーバーのコンパイル時のデフォルトに基づいてサーバーが使用する値を表示するには、次のコマンドを使用します。
mysqld --no-defaults --verbose --help


実行中のサーバーによって使用される現在の値を表示するには、SHOW VARIABLES ステートメントを使用します。


引用:MySQL 5.6 リファレンスマニュアル 5.1.4 サーバーシステム変数
https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html

2016-10-19

CHS,LBA,AFT,BigSector,アライメントの不整合,8の倍数

大変勉強になりました。
ありがとうございました。

■BigSector(AFT)について世間では誤解が多いようで
http://www.kt.rim.or.jp/~aotaka/2010/20101115.htm


■HDDのセクタサイズ~512セクタと4Kセクタ
http://www.pasonisan.com/pc-storage/hdd-512-4ksector.html

2016-07-16

yum の使い方


  1. インストール
    yum install hogehoge
  2. アップデートの確認
    yum check-update
  3. アップデート
    yum update hogehoge
  4. 削除
    yum remove hogehoge
  5. インストール済みパッケージ一覧
    yum list install
  6. 旧バージョンも含めてパッケージ一覧を表示する
    yum --showduplicates list hogehoge

メールアドレスのローカルパート8文字制限

ある人と名刺交換したとき、

相手 「おれさんって、shi じゃなくて si なんですね」

って言われた。

おれ 「そうなんですよ、8文字制限があったころの古い人間でして」

相手 「いや、私も chi じゃなくて ti なんでね・・・同類ですよ」

二人 「はっはっはっ」

って会話になった。








最近、ここに書くネタがない・・・

2016-02-27

Corosync と Pacemaker でクラスタ化されたサーバのメンテナス

普通に監視対象サービスを停止しちゃうとフェイルオーバーするので、
それを回避する方法。

1.メンテナンスモードを有効にする。
crm configure property maintenance-mode=true


2.必要な作業を行う。
サービス停止してもフェイルオーバーしないので、設定ファイルいじったりできる。
停止したサービスは、起動してから次の手順へ。

停止は
crm resource stop リソース名

開始は
crm resource start リソース名

再起動は
crm resource restart リソース名


※その他、crmコマンドの詳細は、こちらのサイトがわかりやすかったです。
CRM CLI (command line interface) tool


3.メンテナンスモードを終了する。
crm configure property maintenance-mode=false

以上!

2016-02-16

systemctl と chkconfig と service の使い方まとめ

サービス一覧
# chkconfig --list

# systemctl list-unit-files -t service


自動起動設定
# chkconfig hoge on

# systemctl enable hoge.service


自動起動解除
# chkconfig hoge off

# systemctl disable hoge.service


サービス起動
# service hoge start

# systemctl start hoge.service


サービス状態確認
# service hoge status

# systemctl status hoge.service


サービス停止
# service hoge stop

# systemctl stop hoge.service

2016-02-01

CentOS 7 ClamAV インストール

yum install epel-release

yum install clamav clamav-update

vi /etc/freshclam.conf
------------------------------------------------------------
#Example
------------------------------------------------------------

/etc/sysconfig/freshclam
------------------------------------------------------------
#FRESHCLAM_DELAY=disabled-warn  # REMOVE ME
------------------------------------------------------------

vi /etc/cron.weekly/clamscan
------------------------------------------------------------
#!/bin/bash

PATH=/usr/bin:/bin

# clamd update
yum -y update clamav clamav-update > /dev/null 2>&1

# excludeopt setup
excludelist=/usr/local/etc/clamscan.exclude
if [ -s $excludelist ]; then
    for i in `cat $excludelist`
    do
        if [ $(echo "$i"|grep \/$) ]; then
            i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
            excludeopt="${excludeopt} --exclude-dir=$i"
    else
        excludeopt="${excludeopt} --exclude=$i"
    fi
    done
fi

# signature update
freshclam > /dev/null

# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP
------------------------------------------------------------

chmod 700 /etc/cron.weekly/clamscan

echo "/proc/" >> /usr/local/etc/clamscan.exclude
echo "/sys/" >> /usr/local/etc/clamscan.exclude

インストールされたファイルの一覧

yum-utils をインストールして

# repoquery --list パッケージ名

でもいいが、追加で yum-utils をインストールしなくても

# rpm -ql パッケージ名

で確認できる。

2016-01-05

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...