====== tips ======
===== sha512でハッシュされたsaltつきパスワードを生成する =====
perl
$ perl -e 'print crypt("password", "\$6\$SALTsalt");'
$6$SALTsalt$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/
openssl((1.1.1以降))
$ openssl passwd -6 -salt SALTsalt password
$6$SALTsalt$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/
===== 正規表現 =====
* [[http://www.kt.rim.or.jp/~kbk/regex/regex.html|正規表現メモ]]
* [[https://qiita.com/richmikan@github/items/b6fb641e5b2b9af3522e|どのUNIXコマンドでも使える正規表現]]
===== 開いているポートを確認する =====
==== netstat ====
$ netstat -an | grep LISTEN
tcp4 0 0 *.80 *.* LISTEN
......
pidも見る((freeBSDでは動作しない))
$ netstat -apn | grep LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 31xxx/nginx: worker
......
* -aオプション->現在の全ての接続を表示。指定しないとESTABLISHEDのみ表示
* -pオプション->プロセスIDとプロセス名を表示
* -nオプション->ホスト名で表示せず、IPアドレスで表示する(名前解決しない)
==== lsof ====
ファイル指定
# lsof /var/log/messages
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 949 root 1w REG 202,1 161802 266276 /var/log/messages
tail 1966 root 3u REG 202,1 161802 266276 /var/log/messages
port指定
# lsof -i:80,433
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 16884 root 7u IPv4 8072178 0t0 TCP *:http (LISTEN)
nginx 16886 nginx 7u IPv4 8072178 0t0 TCP *:http (LISTEN)
...
プロセス名指定
# lsof -c nginx
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 16884 root cwd DIR 202,1 4096 2 /
nginx 16884 root rtd DIR 202,1 4096 2 /
nginx 16884 root txt REG 202,1 884504 25102 /usr/sbin/nginx
...
PID指定
lsof -p 16884
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 16884 root cwd DIR 202,1 4096 2 /
nginx 16884 root rtd DIR 202,1 4096 2 /
nginx 16884 root txt REG 202,1 884504 25102 /usr/sbin/nginx
...
ユーザ指定
# lsof -u user
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1663 ec2-user cwd DIR 202,1 4096 2 /
sshd 1663 ec2-user rtd DIR 202,1 4096 2 /
sshd 1663 ec2-user txt REG 202,1 571224 26039 /usr/sbin/sshd
...
===== コマンドを連結 「;」「&」「&&」「||」の違い =====
==== ;(セミコロン) ====
前のコマンドが終わり次第、次のコマンドが実行
==== &(アンパサンド) ====
前のコマンドの完了を待たない
==== && ====
前のコマンドがうまく終了した(終了ステータスが0)時に、次のコマンドを実行
==== || ====
前のコマンドに失敗(終了コード0以外)したら、次のコマンドを実行
===== コマンドラインでhash =====
$ echo -n 'hoge' | shasum -a 1
31f30ddbcb1bf8446576f0e64aa4c88a9f055e3c -
$ echo -n 'hoge' | shasum -a 256
ecb666d778725ec97307044d642bf4d160aabb76f56c0069c71ea25b1e926825 -
$ echo -n "hoge" | openssl sha1
(stdin)= 31f30ddbcb1bf8446576f0e64aa4c88a9f055e3c
* -n:改行コードを出力しない
* -a:アルゴリズム
GNU拡張
$ openssl passwd -1 -salt "SALTsalt" "test"
$1$SALTsalt$CEvzkj.qgOcLTyU2B5Kg3.
$ openssl passwd -apr1 -salt "SaltsALT" "p@ssw0rd"
$apr1$SaltsALT$51lBhVKD0vAdzxUx/rXqY/
perl
$ perl -e 'print crypt("test", "\$6\$SALTsalt");'
$6$SALTsalt$gH47I0mRGadJVVlIpeTxVlYw.SjkPOZ7lJoGkqOyhyeUJ7PV5QWuYpIG6D5ggew6RXLpl1eA72TpgX5pGDpr/.
python
$ python -c "import crypt, getpass, pwd; print crypt.crypt('test','\$6\$SALTsalt\$')"
$6$SALTsalt$gH47I0mRGadJVVlIpeTxVlYw.SjkPOZ7lJoGkqOyhyeUJ7PV5QWuYpIG6D5ggew6RXLpl1eA72TpgX5pGDpr/.
===== UUID生成 =====
$ uuidgen -r
-r を付けないとランダム(UUID Version4)にならないので注意(@FreeBSD)
===== WEBを静的HTMLとして保存 =====
wget --mirror --page-requisites --html-extension --convert-links http://example.com
それぞれのオプションの意味
|--mirror|ページ内のリンクを解析し、再帰的にダウンロード|
|--page-requisites|ページ内の画像、CSSをダウンロード|
|--html-extension|拡張子がないファイルに拡張子(.html)を付加|
|--convert-links|CSS、JSへの参照がURLになっている場合、相対パスに変換|
===== ダミーファイルを作る =====
10Mbyte
# dd if=/dev/zero of=10M.txt bs=1M count=10
Linuxならこれも((ddより早い))
# fallocate -l 10M 10M.txt
===== SSHでパイプしつつデータ転送 =====
cat hoge.txt | ssh host " cat > /tmp/huga.txt"
===== diff コマンドで横並びで表示したい =====
diff -y path/to/file1 path/to/file2
変更行のみを表示したい
diff -y --suppress-common-lines path/to/file1 path/to/file2
===== Gitでcheckout時にPermission Denied =====
どうも、SourceTreeかTortoiseGitがつかんで離していない模様。\\
再起動で治った
===== コミット時に書いてほしいこと =====
* どのような変更ですか?
* この変更によって,どんなことが起きますか?
* なぜその変更が必要でしたか?
* 参考URLなど(あれば)
===== tmpwatchコマンド =====
使い所
* ある一定の時間を過ぎたファイルやディレクトリを削除したい時
* 一時ファイルを定期的に削除したい時
* 定期的に◯時間アクセスがないログファイルとかを削除したい時
===== ハードウェア情報 =====
dmidecodeが便利((要インストール))
メモリ情報
# dmidecode --type memory
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: 4
Locator: DIMM_A7
Bank Locator: Not Specified
Type: DDR3
Type Detail: Synchronous Registered (Buffered)
Speed: 1333 MT/s
Manufacturer: 00CExxxxxxxxx
Serial Number: 83xxxxxx
Asset Tag: 02113611
Part Number: M393xxxxxxxxx-xxx
Rank: 2
CPU情報
# dmidecode --type processor
Processor Information
Socket Designation: CPU1
Type: Central Processor
Family: Xeon
Manufacturer: Intel
Signature: Type 0, Family 6, Model 44, Stepping 2
Flags:
FPU (Floating-point unit on-chip)
......
Version: Intel(R) Xeon(R) CPU L5639 @ 2.13GHz
Voltage: 1.2 V
External Clock: 5860 MHz
Max Speed: 3600 MHz
===== 各種サーバの設定ファイルの書式チェックの方法 =====
==== apache ====
/usr/local/sbin/httpd -S
or
apachectl configtest
==== nginx ====
# nginx -t
==== postfix ====
# postfix check
何も出なければOK
==== lighttpd ====
# lighttpd -t -f /usr/local/etc/lighttpd/lighttpd.conf
==== sshd ====
# sshd -t
何も出なければOK
==== dovecot ====
# doveconf -n
==== PHP ====
==== Rspamd====
rspamadm configtest
===== 換算表(サブネットマスク) =====
^IPアドレス数^サブネットマスク^ビットマスク^
|1|255.255.255.255|32|
|2|255.255.255.254|31|
|4|255.255.255.252|30|
|8|255.255.255.248|29|
|16|255.255.255.240|28|
|32|255.255.255.224|27|
|64|255.255.255.192|26|
|128|255.255.255.128|25|
|256|255.255.255.0|24|
|512|255.255.254.0|23|
|1,024|255.255.252.0|22|
|2,048|255.255.248.0|21|
|4,096|255.255.240.0|20|
|8,192|255.255.224.0|19|
|16,384|255.255.192.0|18|
|32,768|255.255.128.0|17|
|65,536|255.255.0.0|16|
|131,072|255.254.0.0|15|
|262,144|255.252.0.0|14|
|524,288|255.248.0.0|13|
|1,048,576|255.240.0.0|12|
|2,097,152|255.224.0.0|11|
|4,194,304|255.192.0.0|10|
|8,388,608|255.128.0.0|9|
|16,777,216|255.0.0.0|8|
|33,554,432|254.0.0.0|7|
|67,108,864|252.0.0.0|6|
|134,217,728|248.0.0.0|5|
|268,435,456|240.0.0.0|4|
|536,870,912|224.0.0.0|3|
|1,073,741,824|192.0.0.0|2|
|2,147,483,648|128.0.0.0|1|
|4,294,967,296|0.0.0.0|0|