インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

UNIX

(Linux) Failed with result 'exit-code'のエラーはSELinuxが怪しい

systemctl startで失敗 # systemctl status test.service × test.service - ... Loaded: loaded (/etc/systemd/system/rtestservice; enabled; preset: disabled) Active: failed (Result: exit-code) since Mon 2024-04-01 13:08:11 UTC; 3s ago Duration: …

(Linux)gawkが入っていない状況でvmstatの時刻データを出したい

gawkがないとエラーになる こんな感じ。 $ vmstat 1 | awk '{print strftime("%/%m%d %H:%M:%S"), $0}' awk: line 2: function strftime never defined内部的にはgawkがいるんだとか。 $ which gawk $ which awk /usr/bin/awk Perlスクリプトがいい STDOUTが…

(SSH)ポートフォワーディングをバックグラウンドで実施する

裏で動かしておきたい ポイントはfとNを利用します。fだけであれば $ ssh test -f Cannot fork into background without a command to execute.こんな感じでエラーになるのでNもつけると何も返ってきませんがそれで通ります。 $ ssh test -f -N ちなみに連発…

(Linux)viを開く度にE1187: Failed to source defaults.vimと出てうっとおしい

毎度Enterを求められたり ファイルを編集したり新規作成しようとしてviコマンドを打つと以下のメッセージが。 $ vi ~/test E1187: Failed to source defaults.vim Press ENTER or type command to continue文言を見るとdefaults.vimというものがないというも…

ASCII text, with CRLF line terminatorsの改行をnkfで変換する

やっかいなCRLF こんなファイルがあると、改行が特殊なのかpasteコマンド等で扱うと変な動きをします。 $ file a.txt a.txt: ASCII text, with CRLF line terminatorsなのでこれを以下コマンドでバスっと一気に変換をすると $ nkf -Lu --overwrite a.txt扱い…

(Linux)straceって動いているプロセスを指定することもできるんですね

システムコールを見るコマンド straceはコマンドの前につけるとそのコマンドの動きの $ strace ls --- Process 18596 created --- Process 18596 loaded C:\Windows\System32\ntdll.dll at 00007ffa22890000 --- Process 18596 loaded C:\Windows\System32\k…

(神コマンド/Linux)ファイルの中身を文字列検索してそれが含まれるファイル名を出す

やりたいこと 特定ディレクトリの中にあるファイルを階層的に網羅して、ある文字が含まれているもののファイル名が知りたい。最初は # find . | xargs cat | grep hogeとかしてたけど、そうじゃなくてファイル名が知りたい。中身はファイル名が分かればそれ…

(Linux)スワップ領域はdfコマンドでは見えないけどlsblkコマンドでは見える

スワップ領域ある? メモリの代わりとして使われているハードディスクの一部、スワップ領域(swap space, swap area)。サーバ上に同領域があるかどうかはswaponコマンドで確認できるよね # swapon -s Filename Type Size Used Priority /dev/xvdb1 partitio…

(Linux)curlのkオプションはSSL証明書を無視するか否か

kオプション コマンドのサンプルに以下が乗っているドキュメントがあり、sは進捗を表示するか否かですがkが分からず。 $ curl -k -s https://xxで、調べると証明書を無視するか否かでした。 実際のコマンド実行結果 オプション無しでは弾かれますが $ curl -…

(Linux/SELinux)ディレクトリにfcontextを付与する流れ

例えば以下のディレクトリに付与する際は ls -ldZ /var/local/mysql drwxr-xr-x. 2 root root unconfined_u:object_r:var_t:s0 6 May 28 21:07 /var/local/mysql付与して $ sudo semanage fcontext -a -t container_file_t "/var/local/mysql(/.*)?"反映して…

(Linux)文字列の長さはawkではなくwcで取得した方がいいこともある

理由 半角英数の場合はawkは機能するが # echo "xxx" | awk ' {print length($0)}' 3日本語のような文字に対してはバイト数を見ているため機能しないから。 # echo "ばつ" | awk ' {print length($0)}' 6 対応策 wcを使う。 root@instance-1:~/Twitter# echo…

(Linux/cron)月末にのみ実行するcrontabの書き方

結論 0 0 28-31 * * /usr/bin/test $(date -d '+1 day' +%d) -eq 1 && hoge.sh なぜそれで動くのか? # date -d '+1 day' +%d 23 # date Sat May 22 02:59:45 UTC 2021要は日付を1日たして日付情報だけを抜き出しています。 この値が1の時だけ後続のコマンド…

(Linux)カラー画像をCUI上でアスキー文字にして鑑賞する

ターミナルでも画像が見たい という人のために便利なGoのプログラムが。 # go get github.com/jhchen/ansizeでインストール。パスのbin配下に格納されるので # echo $GOPATH /usr/local/go/src/コマンドが通る場所に配置して実行すると1/0とスペースで表現。…

(Linux)いつの間にかsources.list.saveができてapt-getができなくなっていた

発生事象 いつも通りaptでパッケージを入れようとするも # apt-get update Reading package lists... Done W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (2: No such file or directory) W: Unable to read /etc/apt/sources.list - RealF…

(Linux)seqコマンドで大きい数字から減らしていく書き方

マイナスで書く 以下。 # seq 10 -1 1 10 9 8 7 6 5 4 3 2 1最後の数字はどこまで行くかになるのでここを変えれば途中で止まることも可能。

(Linux)連続した空白を1つの空白にするコマンド

sedで一発 $ sed -e 's/\s\+/ /g'これでイケます。便利。

空⾏を無視と#で始まる⾏を無視くらいは空でgrepできた方がいい

grep cat test.txt | grep -v '^$' | grep -v '^#'でできますよね。要は最初に^先頭&終端$が続いている行をvで弾いて先頭が#で始まる行も弾いています。

(Cygwin)コマンドラインで便利なショートカット

ショートカット Ctrl+A は 先頭 Ctrl+E は 最後 Ctrl+K は 後ろを削除 Esc+. は 末尾の列を出すこのあたりは覚えておきたい。

(Linux) cp: 宛先のxxはディレクトリではありませんと出てくる時の原因

mvやcpでエラー パスをスクリプトで取得して流すも以下のようなエラー。 cp: 宛先の '0.JPG' はディレクトリではありませんで、原因はパスの中に空白が入っていることにありました。Windowsとかだとディレクトリに空白が入っていることたまにありますよね。…

apt-key addあたりが何をしているのか知りたくなった

今まではコピペしていたけど wget -qO - https://xx-key.gpg.key | apt-key add - OK sh -c "echo 'deb xx.org stable/' > /etc/apt/sources.list.d/xx" apt update -y apt-keyの役割 apt-key add-で >> 信頼キーのリストに新しいキーを追加します。このキー…

二つのファイルを交互に挿入lするLnuxの便利コマンドpaste

pasteコマンド 以下のコマンドで一行ずつ出力されます。 $ paste -d'\n' a.txt b.txtなんとも便利です。

viに引数で変なコマンドを投入したらフリーズしたのでお気を付けください

catとviを間違えた $ vi test.csv | cut -d"," -f1 Vim: 警告: 端末への出力ではありません /etc/vimrc の処理中にエラーが検出されました: 行 1: 割込まれました /home/./.vimrc の処理中にエラーが検出されました: 行 1: 割込まれました 割込み: 続けるに…

(Linux)killコマンドでプロセスを停止させる際の心得

システム管理者はKILLを使いがち とある書籍に以下の文言が書いていました。 概してシステム管理者が SIGKILL を使うタイミングは早すぎる傾向にあります。 強制終了されるプロセスはセルフクリーンアップが行われません。 まず SIGTERM を送信し、次に SIGI…

(Linux)パスワードを次ログインした時に変えるようにしてあげる

インフラ管理者あるある すみませんパスワード忘れちゃって...という人いいますよね。 そうなるとインフラエンジニアはpasswdコマンドでパスワードを変えます。で、「password」にしておいたので次ログインした時に変えてくださいね、ということで # chage -…

意外と知らない cd - で前居たディレクトリに戻れるTips

Linux 意外と知られていないですがハイフンを使えば # cd /usr/bin # cd /home/hoge # cd - /usr/bin # cd - /home/hoge前にいたディレクトリに戻れます。 環境変数に保持されているから 仕組みは単純でデフォルトでOLDPWDというところに情報が残っているみ…

GCPにsshするも目を離すとclient_loop: send disconnect: Connection reset by peerで切れてる

あるある Windows端末からSSHでグーグルクラウドの仮想マシンに繋いでいる時、少し別の作業をしているとすぐに client_loop: send disconnect: Connection reset by peerと切断されてしまいます。よくある話なのかな?と思ってググッてみると以下のコメント…

syslogの設定ファイルに登場するチルダ(~)はなんなのか

結論 ログを出さないことを意味する部分。ちなみにRHEL限定の記法。公式ページに以下のように書いてました。 rsyslog 7 より前のバージョンでは、syslog メッセージを破棄する際に、stop の代わりにチルダ文字 (~) が使用されていました。 チルダはホームデ…

Linuxで動くHAProxyのTCPログのざっくりした見方

難解 以下のようなログが出力されますが意味不明ですよね。 Oct 13 10:26:42 localhost haproxy[22692]: ...:35992 [13/Oct/2020:10:26:36.387] hoge hoge/fuga 1/2005/5654 2763 -- 182/179/179/170/2 0/0というわけで大事そうなところをざっくり説明しまし…

haproxyでスペースが悪さをしてAlertがあがった件

Linux systemctl start haproxy で立ち上げるも xx .. haproxy-systemd-wrapper[11727]: [ALERT] 286/045732 (11728) : parsing [/etc/haproxy/haproxy.cfg:109] : unknown keyword ' ' in 'frontend' section xx .. haproxy-systemd-wrapper[11727]: [ALERT…

RHELにてhttpdのウェルカムページの場所を探してみた

Httpサーバ yum install httpd systemctl enable httpd systemctl start httpdで立ち上がるWebサーバ、curl localhost で内容も確認できます。ここで気になったのがWelcomeページのhtmlがどこにあるか。 DocumentRootにはない 設定ファイルを見に行くと # ca…