プロジェクト

全般

プロフィール

Linux » 履歴 » バージョン 3

kanata, 2025/04/30 17:19

1 1 kanata
# Linux
2
3
みんなの役に立つかもしれないと思った物をメモ
4
5
{{toc}}
6
7
{{child_pages}}
8
9
# KnowHow
10
11
## コマンドラインからgmailを送る
12
13
■python で SMTP 認証を行ってメールを送信する
14
http://t2y.hatenablog.jp/entry/20090705/1246772990
15
16
の snakemail.py を使うと送れる。スクリプト1本で動く。
17
とても便利です。
18
19
20
## ログ監視時に特定のキーワードを引っ掛けて色を着ける
21
22
以下の2ファイルを作る
23
24
### rcg.pl
25
26
```
27
#!/usr/bin/perl -w
28
use strict;
29
use Term::ANSIColor qw(:constants);
30
31
my %target = ();
32
33
while (my $arg = shift) {
34
my $clr = shift;
35
36
if(($arg =~ /^-/) | (!$clr)) {
37
print "Usage: rcg [regex] [color] [regex] [color] ...\n";
38
exit;
39
}
40
41
#
42
# Ugly, lazy, pathetic hack here
43
#
44
$target{$arg} = eval($clr);
45
}
46
47
my $rst = RESET;
48
49
while(<>) {
50
foreach my $x (keys(%target)) {
51
s/($x)/$target{$x}$1$rst/g;
52
}
53
print;
54
}
55
56
```
57
58
今だと[ccze](https://orebibou.com/2014/09/%E3%83%AD%E3%82%B0%E3%82%92%E3%82%AB%E3%83%A9%E3%83%95%E3%83%AB%E3%81%AB%E3%81%97%E3%81%A6%E3%82%82%E3%81%A3%E3%81%A8%E8%A6%8B%E3%82%84%E3%81%99%E3%81%8F%EF%BC%81%E3%80%8Eccze-tool%E3%80%8F/)というのがあるのでこっちの方が便利そうです
59
60
### syslog.sh
61
62
```
63
#!/bin/sh
64
65
# 色つきシスログのtail -f
66
67
RCG="/usr/local/bin/rcg.pl"
68
69
tail -f /var/log/messages |${RCG} '.*ERROR.*' 'BOLD . RED' \
70
                        '.*Error.*' 'BOLD.RED' \
71
                        '.*WARNING.*' 'BOLD.BLUE' \
72
                        '.*DEBUG.*' 'YELLOW' \
73
                        '.*INFO.*' 'GREEN' \
74
                        '.*NOTICE.*' 'GREEN' \
75
                        '.*LOGIN.*' 'CYAN' \
76
                        '.*session.*' 'CYAN' \
77
                        '.*fail.*' 'RED' \
78
                        '.*deny.*' 'RED' \
79
                        '.*Deny.*' 'RED' \
80
                        '.*denied.*' 'RED' \
81
                        '.*Denied.*' 'RED' \
82
                        '.*refused.*' 'RED' \
83
                        '.*Unable.*' 'RED' \
84
                        '.*down.*' 'MAGENTA'
85
86
exit 0
87
```
88
89
で、以下の通り、実行権限つけたりした後、syslog.shを実行すると、シスログに色がついた状態で tail -f してログが見れる。
90
同じやり方でアクセスログとかも色付けられます。
91
92
```
93
# chmod ugo+x rcg.pl
94
# mv -i rcg.pl /usr/local/bin
95
# chmod ugo+x syslog.sh
96
# ./syslog.sh
97
```
98
99
また、rcg.pl は該当箇所を色付けできるので
100
101
```
102
# cat test.txt | rcg.pl 'error' 'BOLD . RED'
103
```
104
みたいに使うと、特定の箇所だけ色付けして表示できる。
105
106
perlの ANSIColor.pm というやつを使って実現している。指定できる色は、以下の通り。
107
108
```
109
CLEAR RESET BOLD DARK UNDERLINE UNDERSCORE BLINK REVERSE CONCEALED 
110
BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE 
111
ON_BLACK ON_RED ON_GREEN ON_YELLOW ON_BLUE ON_MAGENTA ON_CYAN ON_WHITE
112
```
113
114
## よくアクセスしてきてるIPアドレス TOP100を出力
115
116
ワンライナーでいける。
117
118
```
119
# cat /var/log/httpd/access_log*|awk '{print $1}'|grep -v '::1'|sort|uniq -c|sort -nr|head -100
120
```
121
122
## IPアドレスがどこの国から来てるか調べる
123
124
http://cc.wariate.jp/ さんのお世話になることで可能になる。
125
ありがとうございます。
126
127
こんなシェルスクリプトを作った。nslookupがインストールされていることが前提
128
129
### whereDoYouComeFrom.sh
130
131
```
132
#!/bin/sh
133
134
if [ $# = "0" ]
135
then
136
        echo "ex>${0} [ip address].."
137
        exit 1
138
fi
139
140
if echo "${1}"|grep l >/dev/null
141
then
142
        # Display only Country "-l"
143
        SWITCH="ON"
144
        shift
145
fi
146
147
for WORD in "${@}"
148
do
149
        REVERS_IP=`echo ${WORD}|awk -F'.' '{print $4,".",$3,".",$2,".",$1}'|sed -e 's/ /
150
/g'`
151
        COUNTRY=`nslookup -type=TXT ${REVERS_IP}.cc.wariate.jp|grep '"'|awk -F'"' '{prin
152
t $2}' `
153
154
        if [ "${SWITCH}" = "ON" ]
155
        then
156
                echo "${COUNTRY}"
157
        else
158
                echo "${WORD}   ${COUNTRY}"
159
        fi
160
done
161
162
exit 0
163
```
164
165
で、以下みたいに使う
166
167
```
168
# whereDoYouComeFrom.sh 182.22.59.229
169
182.22.59.229   JP
170
```
171
172
## Linuxでファイル・ディレクトリ監視を行う『inotify』
173
174
Linuxでファイル・ディレクトリ監視を行う『inotify』
175
http://orebibou.com/2015/04/linux%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%BB%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E7%9B%A3%E8%A6%96%E3%82%92%E8%A1%8C%E3%81%86%E3%80%8Einotify%E3%80%8F/
176
177
inotifywaitを用いたファイルのバージョニング・バックアップスクリプトの作成
178
http://orebibou.com/2015/05/inotifywait%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%BB%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2/
179
180
ファイルやディレクトリの編集・変更などに応じてプログラムを実行させる『incron』
181
http://orebibou.com/2015/04/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%84%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E7%B7%A8%E9%9B%86%E3%83%BB%E5%A4%89%E6%9B%B4%E3%81%AA%E3%81%A9%E3%81%AB%E5%BF%9C%E3%81%98/
182
183
再帰的にフォルダを監視できるincronライクなコマンド『Watcher』
184
http://orebibou.com/2015/05/%E5%86%8D%E5%B8%B0%E7%9A%84%E3%81%AB%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E7%9B%A3%E8%A6%96%E3%81%A7%E3%81%8D%E3%82%8Bincron%E3%83%A9%E3%82%A4%E3%82%AF%E3%81%AA%E3%82%B3%E3%83%9E%E3%83%B3/
185
186
## ddとsshを使ってネットワークごしにディスクイメージをコピーする
187
188
### ローカルのディスクをサーバにコピーする場合
189
190
```
191
$ dd if=デバイスファイル | gzip -1 - | ssh ユーザ名@ホスト名(IPアドレス) dd of=コピー後のファイル名
192
```
193
194
### dd if=デバイスファイル | gzip -1 - | ssh ユーザ名@ホスト名(IPアドレス) dd of=コピー後のファイル名
195
196
```
197
$ ssh ユーザ名@ホスト名(IPアドレス) dd if=コピー後のファイル名 | gzip -1 - | dd of=デバイスファイル
198
```
199
200
## vimでリモート先のファイルをsshプロトコル経由で編集する
201
202
```
203
$ vim scp://ユーザ名@リモートホスト(IPアドレス)//編集対象のファイル
204
```
205
206
## ファイルの削除前に、そのファイルを参照しているシンボリックリンクを確認する
207
208
```
209
$ ls -la $(find -L /シンボリックリンクがあるフォルダのPATH -samefile /オリジナルファイルのPATH)
210
$ ls -la $(find -L /{work,home} -samefile /work/test.txt)
211
```
212
213
## 『chattr』コマンドで属性を変更し追記専用や削除不可能なファイルにする
214
215
```
216
$ chattr [オプション] [属性の変更値] ファイル・ディレクトリ
217
```
218
219
| オプション | 説明                                           |
220
|------------+------------------------------------------------|
221
| -R         | フォルダ内のファイルの属性値を再帰的に変更する |
222
| -V         | 属性値の変更内容を詳細に出力する               |
223
| -f         | エラーメッセージを抑制する                     |
224
225
226
| 属性の変更値 | 説明                                           |
227
|--------------+------------------------------------------------|
228
| a            | 追記編集のみ可能とする
229
| c            | ファイルの圧縮を行う
230
| d            | dumpの対象外にする
231
| e            | 拡張フォーマットを使用する
232
| i            | ファイルを変更出来なくする
233
| j            | データのジャーナリングを行う
234
| s            | 安全に削除させる(データブロック内を消去)
235
| t            | 末尾のマージをできなくする
236
| u            | ファイルを削除不可にする
237
| A            | atime(アクセス時刻)を更新しない
238
| D            | ディレクトリを同期的に更新する
239
| S            | 同期的に更新する
240
241
属性値を追加する場合は「+」を、削除する場合は「-」の後に記述する。
242
243
## extglobを有効にして「指定したパターン以外のファイル」を指定する
244
245
### 現状、有効か無効か確認する
246
247
```
248
$ shopt | grep extglob
249
```
250
251
### extglobを有効にする
252
253
```
254
$ shopt -s extglob
255
```
256
257
### extglobでできること
258
259
ワイルドカードの指定で以下が利用可能になる
260
261
| extglob     | 説明                                           |
262
|-------------+------------------------------------------------|
263
| ?(パターン) | 指定したパターンに一致するものを指定
264
| *(パターン) | 指定したパターンを0回以上繰り返すものを指定
265
| +(パターン) | 指定したパターンを0回以上繰り返すものを指定
266
| @(パターン) | 指定したパターンのいずれかに一致するものを指定
267
| !(パターン) | 指定したパターンに該当しないものを指定
268
269
270
271
「/work」フォルダにある、「aaaaa.txt」および「bbbbb.txt」以外を抽出する
272
273
```
274
$ ls -la /work/!(aaaaa.txt|bbbbb.txt)
275
```
276
277
### Linux Performance Observability Tools
278
279
Linux Performance Observability Tools
280
https://twitter.com/kamranahmedse/status/1501116746811547654
281
282
{{rawhtml(<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Linux Performance Observability Tools<a href="https://t.co/N9VkCQFAcw">https://t.co/N9VkCQFAcw</a> <a href="https://t.co/3wfuNSQmPL">pic.twitter.com/3wfuNSQmPL</a></p>&mdash; Kamran Ahmed (@kamranahmedse) <a href="https://twitter.com/kamranahmedse/status/1501116746811547654?ref_src=twsrc%5Etfw">March 8 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>)}}
283
284
# Tool
285
286 3 kanata
Linuxメモ : あると便利かもしれないRust製コマンドラインツール - もた日記 
287
https://wonderwall.hatenablog.com/entry/rust-command-line-tools
288
289
<!--
290 1 kanata
## peco - インタラクティブ・フィルタリングツール
291
292
Qiita - おい、peco もいいけど fzf 使えよ
293
http://qiita.com/b4b4r07/items/9e1bbffb1be70b6ce033
294
295
Qiita - 例えば、pecoをビルドしない
296
http://qiita.com/lestrrat/items/de8565fe32864f76ac19
297
298
## up
299
300
up - the Ultimate Plumber
301
https://github.com/akavel/up
302
303
>実行結果をインタラクティブに表示 Ctrl+x でそこまで記述したものをシェルスクリプトとして出力する
304
305
## lnav - コンソール上でログをカラフルに見やすく表示してくれるログビューアコマンド
306
307
lnav
308
http://lnav.org/
309
310
311
312
313
314
### インストール
315
316
```
317
# wget https://github.com/tstack/lnav/releases/download/v0.7.3/lnav-0.7.3-linux-64bit.zip
318
# unzip lnav-0.7.3-linux-64bit.zip
319
# mv lnav-0.7.3/lnav /usr/local/bin/
320
# cd /usr/local/bin/
321
# chmod +x ./lnav
322
```
323
324
### 基本的な使い方 
325
326
```
327
# lnav /var/log/messages /var/log/httpd/access_log /var/log/httpd/error_log /var/log/secure /var/log/cron /var/log/maillog
328
```
329
330
ログに対してSQL検索もできるらしい。詳しくは[こちら](http://lnav.org/features/)
331
332 3 kanata
-->
333
334 1 kanata
## Any tools
335
336
偏りに満ちたWayland時代のLinux Desktopおすすめアプリ 2024
337
https://joker1007.hatenablog.com/entry/2024/03/29/222656
338
339
Linuxでトラブルが発生したときの診断に役立つツール一覧、「事前のインストールを強く推奨」とリストの作者は語る
340
https://gigazine.net/news/20240327-linux-crisis-tools/
341
342
# Memo
343
344
LPIC - Linux教科書
345
http://lpi.or.jp/linuxtext/admin.shtml
346
347
rcmdnk's blog - ssh周りの設定、Tipsのまとめ
348
http://rcmdnk.github.io/blog/2015/09/09/computer-remote/
349
350
メモ。。メモ。。 - 【RHEL】linuxのメモリ使用率(利用率)の計算方法
351
http://nopipi.hatenablog.com/entry/2015/09/13/181026
352
353
Qiita - 最強のSSH踏み台設定
354
http://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8
355
356
余白の書きなぐり - sshで多段接続 (ncも-Wもない人用)
357
http://auewe.hatenablog.com/entry/2014/03/10/043030
358
359
RHEL/CentOSユーザーのUbuntu入門【コマンド、設定ファイル編】
360
http://dev.classmethod.jp/server-side/os/ubuntu-command-for-centos-useres/
361
362
CentOSで自宅サーバー構築
363
http://centossrv.com/
364
365
メモ。。メモ。。 - 【RHEL】linuxのメモリ使用率(利用率)の計算方法
366
http://nopipi.hatenablog.com/entry/2015/09/13/181026
367
368
Tech random memoranda - Linuxのブートシーケンスの基礎まとめ
369
http://nishidy.hatenablog.com/entry/2016/09/08/230637
370
371
GitBook - Linux Inside
372
https://www.gitbook.com/book/0xax/linux-insides/details
373
374
LISA2019 Linux Systems Performance
375
https://www.slideshare.net/brendangregg/lisa2019-linux-systems-performance
376
377
Linux Performance
378
http://www.brendangregg.com/linuxperf.html
379
380
SRE deep dive into Linux Page Cache # SRE が Linux ページ キャッシュを深く掘り下げる
381
https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/
382
383
Linuxサーバのセキュリティ監視プラクティス (概要編)
384
https://qiita.com/odorusatoshi/items/05209655932f0bb401ba
385
386
LinuxサーバーのTCPネットワークのパフォーマンスを決定するカーネルパラメータ – 3編
387
https://meetup-jp.nhncloud.com/1516