LABO/linuxシステムまわりで使うコマンド

一行メモ

  • tar の展開はrootユーザでないとファイルの所有者が保たれない、らしい -- 2019-03-19 (火) 13:36:10
  • gpg --verify MD5SUMS.gpg MD5SUMS #署名確認 -- 2019-03-20 (水) 13:10:33
  • gpg --verify file.tar.gz.sign file.tar.gz #署名確認 -- 2019-05-14 (火) 23:58:51
  • gpg --keyserver pgp.nic.ad.jp --recv-key FBB75451 -- 2019-03-20 (水) 13:10:43
  • gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EFE21092 -- 2019-03-20 (水) 13:14:47
  • ユーザの作成: sudo useradd -m -s /bin/bash -u ユーザのUID -c 'お名前,,,' ログイン名 -- 2019-03-22 (金) 10:18:43
  • ユーザの削除: sudo userdel -r ユーザ名 #-rオプションでホームディレクトリも削除 -- 2019-03-22 (金) 10:19:20
  • ユーザ情報の変更: sudo usermod オプション ログイン名 #オプションはuseraddと同様 -- 2019-03-22 (金) 10:19:55
  • useraddでパスワードを入れる場合は -p パスワード のオプションを追加。そうでない場合は、sudo passwd ログイン名 で入れる。 -- 2019-03-22 (金) 10:24:22
  • samba利用者の接続一覧:sudo smbstatus -S -- 2019-03-23 (土) 21:35:54
  • sambaの接続状況:sudo smbstatus -d #または -bオプション -- 2019-03-23 (土) 21:37:55
  • apache2のバージョン: apache2 -v or -V -- 2019-03-29 (金) 15:06:10
  • apache2の使用モジュール: apache2 -l -- 2019-03-29 (金) 15:06:28
  • visudoなどの編集で使うエディタを変更する:sudo update-alternatives --config editor -- 2019-04-03 (水) 16:39:46
  • gpg --import gnu-keyring.gpg -- 2019-04-14 (日) 12:02:03
  • samba利用ユーザの一覧 sudo pdbedit --list -- 2019-11-12 (火) 12:01:11
  • samba接続のユーザ作成orパスワード変更 sudo pdbedit -a -u uhoge -- 2019-11-12 (火) 12:02:07
  • スーパーブロックの初期化? mdadm --zero-superblock /dev/sda -- 2019-12-07 (土) 19:42:16
  • ntsysv #デーモン起動の一覧と設定 -- 2019-12-09 (月) 17:48:30
  • lshw -- 2019-12-14 (土) 12:55:07
  • lspci -- 2019-12-14 (土) 12:55:12
  • ifconfig -- 2019-12-14 (土) 12:55:18
  • ip addr show -- 2019-12-14 (土) 12:55:25
  • openssl s_client -help -- 2020-02-24 (月) 11:36:40
  • openssl s_client -crlf -connect orange.eit.hirosaki-u.ac.jp:443 -quiet #-showcerts -- 2020-02-24 (月) 11:36:56
    • -tls1_1 -- 2020-02-24 (月) 11:50:28
  • logwatch --range "-3 days" | less -- 2020-03-18 (水) 00:53:28
  • dmidecodeコマンド -- 2021-02-22 (月) 18:19:17
    sudo dmidecode  -t memory
      Size: 16384 MB
      Locator: DIMM_A1
      Type: DDR4
      Speed: 2133 MHz
      などの情報を得ることができる。
      温度無い?
  • ldd a.out #ダイナミックリンクしているライブラリがわかる -- 2021-02-27 (土) 20:47:48

  • https://stackoverflow.com/tags -- 2021-04-18 (日) 19:02:56
  • mount -t iso9660 hogehoge.disk1.iso mnt #isoファイルをマウントする -- 2021-04-19 (月) 16:17:46
  • rpm -qpl e1000e-3.8.4-1.x86_64.rpm -- 2021-04-24 (土) 12:31:14
  • ほげ -- 2021-05-11 (火) 19:24:26
    mdadm /dev/md127 -a /dev/sda1  #failしてたパーティションの場合はre-add、新しいパーティションの場合はaddされる。
    mdadm /dev/md126 -a /dev/sda2  #〃
    
    mdadm --run /dev/md126  #なぜか止まってたRaidをスタートする
    
    mdadm -D /dev/md12[67]  #アレイのUUIDやその他情報表示
    mdadm -E /dev/sd[ab]1   #デバイスのUUIDやその他情報表示
    
    cat /proc/mdstat  #Raidの状態表示
    
    lsblk -f  #デバイスのUUIDのリスト表示、ファイルシステムのタイプも表示される
    
    fdisk -l /dev/sda
    
    mdadm --assemble /dev/md0 --run --force /dev/sda1  #Raidパーティションをマウントする
    mount /dev/md0  /mnt/sysimage
  • X11サーバの画面切り替え (xdmなどのx window display managerのとき) -- 2021-11-30 (火) 12:07:46
    • Ctrl-Alt-F1 X11画面を表示
    • Ctrl-Alt-F2 ~F6 バーチャルコンソールを表示(5個使える)
  • uptime #show load averages -- 2022-03-15 (火) 23:16:55
  • cat /proc/cmdline #カーネルに渡されたパラメータを表示 -- 2022-03-15 (火) 23:17:26
  • iostat -d 1 -p /dev/md124 | grep md124 #1秒ごとにmd124のIOを表示 -- 2022-05-11 (水) 10:27:01
  • iostat -xtc -- 2022-05-11 (水) 10:28:59
  • mallocでエラーにならずにOOM killされる事への対策? -- 2022-08-30 (火) 12:38:35
  • ldd, pldd, strings, ld-linux.so, QT_DEBUG_PLUGINS, LD_PRELOAD, readelf -d -w -- 2022-11-18 (金) 17:27:11
  • ext4のパーティションを拡大する:fdiskでパーティションの先頭を変えないように、いったん削除して拡大したパーティションを作成する。次に、resize2fsで拡大したパーティションの最大まで拡大する。OK? -- 2023-03-05 (日) 20:21:31
  • watch -n 60 cat /proc/mdstat #60秒おきに右のコマンドを実行する -- 2023-03-07 (火) 16:07:33
  • 例: echo "5e38b55d57d94ff029719342357325ed3bda38fa80054f9330dc789cd2d43931 *ubuntu-22.04.2-live-server-amd64.iso" | shasum -a 256 --check -- 2023-06-26 (月) 16:46:14

mallocでエラーにならずにOOM killされる事への対策?

/etc/sysctl.conf に次を追加し、オーバーコミットしないようにして(100と2)、もし OOMになったときは カーネルパニック(1)を起こさせ、リブート(30秒後)させる。OOMだからといっていつもカーネルパニックが 生じる訳ではないようだ。

vm.overcommit_ratio=100
vm.overcommit_memory=2
vm.panic_on_oom = 1
kernel.panic = 30

この設定ファイルは sysctl -p で読み込まれる。 又は、sysctl -w vm.overcommit_ratio=100 などとして設定してもよい(リブートでもとに戻る)。

/etc/crontab に次の行を書いておくと、起動時(@reboot)に、右のコマンドが実行される。

@reboot root (dmesg | head -10; tail -50 /var/log/messages) | mail -s"`hostname` rebooted" root

iperf3 通信帯域速度測定

サーバーを起動
compute-0-1$ iperf3 -s [-p ポート番号,default 5201]
サーバーホストを指定して、クライアントを起動。測定される
compute-0-2$ iperf3 -c compute-0-1 [-p ポート番号,default 5201] [-t 秒数,default 10]
短時間の測定を異なるマシン間でする場合
$ for node in 2 3 4 ; do echo "== compute-0-$node -> 0-1 =="; ssh compute-0-$node iperf3 -c compute-0-1; done

netstat

netstat    #オプション無しは ESTBLISHEDのみを表示する
   #-a をつけると、接続まち、接続まちでないもの、すべてのソケットを表示
   #-t をつけるとTCPを表示
   #-u をつけるとUDPを表示
   #-n 名前解決をしない

netstat -tanp  # TCP LISTENをみる
netstat -r    #ルーティングテーブルを表示する
   #-n 名前解決をしない
netstat -i    #インターフェース毎の統計情報を表示
              #(パケット衝突数など含まれる)

メモリの状態を調べる

free -m       #メモリの空きをみる。-mはMB単位の指定。
vmstat [sec]  #スワップin,outの回数をみる。secがあると秒毎に出力される。

ハードディスクの状態を調べる

sar

ブロックデバイスのアクティビティを表示(デバイス毎にデバイス名で、今日の11時
から11時半までの範囲で)
sar -dp -s 11:00:00 -e 11:30:00
  #-dpの代わりに -bを指定すると全デバイスの合計が表示される。
  #過去のアクティビティを表示するには -f /var/log/sa/sa11 などとファイルを指定する。
  #ファイルは1日毎にローテンションされているので、どのファイルを指定すればよいかは
  #ファイルスタンプで判断する。
  #表示で見るべきところ
  #  rd_sec/s: 1秒当たりの、読込み量(単位 block, 1 block = 1 sector = 512 byte)
  #  wr_sec/s: 1秒当たりの、書込み量(単位 block, 1 block = 1 sector = 512 byte)
  #  %util:    デバイスの帯域利用率(RAIDアレイでは最大値は100%を超え)
  #            RAIDのときは物理デバイスの帯域利用率を見るとよい
  #他
  #  tps:     1秒当たりの、I/Oリクエスト回数
  #  avgrq-sz: 発行されたリクエスト(デバイスに対する操作)の平均サイズ(単位block)
  #  avgqu-sz: 発行されたリクエストの平均キュー長(単位はblockか?)
  #  await:    リクエストの平均処理時間(待ち時間も含、単位はmsec)
  #  svctm:    (現在、無意味な値)

関連)
sar -dp  5 | grep md124\\\|DEV    #数字を引数にするとN秒毎にアクティビティを表示
                                  #grepで適当にデバイスを選択表示

ブロックデバイス以外に、以下も表示できる。
  -q ロードアベレージを表示
  -W スワップin/outされたページ数を表示

HDD WD20EFPXのI/Oスペック
  内部転送速度は最大で 180MB/sとのことである。alliumで実際にファイルを読込ませて
調べてみると、最大約148MB/sであった。書き込みは最大58MB/s程度のようだ。
(c.f. SATA 6Gbpsだと 750MB/s)
dd if=/dev/zero of=afile.hoge bs=1000000000 count=50 #50Gのファイル作成
この状態で
sar -dp  5
をすると書き込み性能を知れる。
c.f. cygwinの端末で
$ powershell -Command "& {Get-Counter  -Counter '\LogicalDisk(_Total)\Disk Read Bytes/sec' -Continuous}"
をすると似たことが出来るようだ(これは読み込み性能)。
  • 同様な他のコマンド
    iostat -x    #HDDの統計情報を表示
nfsstat [-s|-c]    #NFSの統計情報を表示。-s/-cはサーバ/クライアントのみ
blkid    #HDDのUUIDなどを表示
findmnt    #マウントのツリーを出力

lsof

sudo lsof -i    #プロセスが使用しているポートを表示する
sudo lsof -i:80  #80ポートを使用しているプログラムを表示する

/etc/shadowファイルの編集

vipw -s

sysctl

$ sysctl -a  #カーネルパラメータを表示する
$ sysctl net.ipv4.icmp_echo_ignore_broadcasts  #個々の表示

$ sysctl -a | grep 'net.ipv4.icmp_echo_ignore_broadcasts\|net.ipv4.icmp_ignore_bogus_error_responses\|¥
net.ipv4.tcp_syncookies\|net.ipv4.conf.all.accept_redirects'

$ sysctl -a | grep 'net.ipv[46].\(ip_forward\|conf.all.accept_source_route\)'

$ sysctl -a  2> /dev/null | grep 'net.ipv[46].\(icmp_echo_ignore_broadcasts\|¥
icmp_ignore_bogus_error_responses\|tcp_syncookies\|conf.all.accept_redirects\)'

/etc/sysctl.conf に起動時に読み込まれる設定ファイルあり。起動後は sysctl -p で再読込みができるらしい。
個々の書き換えは、see man

iptables

$ sudo iptables [-t filter] -L [チェイン名] -v -n

   -t filter はデフォルト。他に natなど

   -v 設定全体を省略しない
   -n IPやフラグなどを文字にしない

   -L 設定内容の表示。チェイン名を指定できる

# CentOSの場合
/etc/sysconfig/iptablesに設定されるテーブル・チェインの記載があるらしい。
# Ubuntuの場合
どこ?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-07-01 (土) 21:49:53 (323d)