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

----

- lsmod --  &new{2021-03-20 (土) 15:07:19};
- depmod -e -F /lib/modules/3.10.0-693.5.2.el7.x86_64/source/System.map  -a 3.10.0-693.5.2.el7.x86_64 --  &new{2021-03-20 (土) 15:07:33};
-- https://www.atmarkit.co.jp/ait/articles/1812/28/news028.html --  &new{2021-03-20 (土) 15:07:43};
- modinfo e1000e --  &new{2021-03-20 (土) 15:09:04};
- lspci -t --  &new{2021-03-20 (土) 15:15:10};
- http://mirror.centos.org/centos/ --  &new{2021-03-21 (日) 12:30:26};
- https://github.com/rocksclusters --  &new{2021-03-21 (日) 18:16:59};
- https://www.scsk.jp/lib/product/oss/pdf/oss_17.pdf debパッケージの操作と構築① --  &new{2021-04-04 (日) 11:39:40};

- https://stackoverflow.com/tags --  &new{2021-04-18 (日) 19:02:56};
- mount -t iso9660  hogehoge.disk1.iso  mnt    #isoファイルをマウントする --  &new{2021-04-19 (月) 16:17:46};
- rpm -qpl e1000e-3.8.4-1.x86_64.rpm --  &new{2021-04-24 (土) 12:31:14};
- ほげ --  &new{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のとき)  --  &new{2021-11-30 (火) 12:07:46};
-- Ctrl-Alt-F1        X11画面を表示
-- Ctrl-Alt-F2 ~F6   バーチャルコンソールを表示(5個使える)
- uptime  #show load averages --  &new{2022-03-15 (火) 23:16:55};
- cat /proc/cmdline  #カーネルに渡されたパラメータを表示 --  &new{2022-03-15 (火) 23:17:26};
- iostat -d 1 -p /dev/md124 | grep md124    #1秒ごとにmd124のIOを表示 --  &new{2022-05-11 (水) 10:27:01};
- iostat -xtc --  &new{2022-05-11 (水) 10:28:59};
- mallocでエラーにならずにOOM killされる事への対策? --  &new{2022-08-30 (火) 12:38:35};

- ldd, pldd, strings, ld-linux.so, QT_DEBUG_PLUGINS, LD_PRELOAD, readelf -d -w --  &new{2022-11-18 (金) 17:27:11};
- ext4のパーティションを拡大する:fdiskでパーティションの先頭を変えないように、いったん削除して拡大したパーティションを作成する。次に、resize2fsで拡大したパーティションの最大まで拡大する。OK? --  &new{2023-03-05 (日) 20:21:31};
- watch -n 60 cat /proc/mdstat  #60秒おきに右のコマンドを実行する --  &new{2023-03-07 (火) 16:07:33};
- 例: echo "5e38b55d57d94ff029719342357325ed3bda38fa80054f9330dc789cd2d43931 *ubuntu-22.04.2-live-server-amd64.iso" | shasum -a 256 --check --  &new{2023-06-26 (月) 16:46:14};

#comment

//--------------------------------------------------------------------------------

** グループへの追加・削除 [#e2d0bc5d]

 $ groups   #所属グループ表示
 okazaki wheel appbin
 $ sudo gpasswd -d okazaki wheel   #グループから削除
 Removing user okazaki from group wheel
 $ groups
 okazaki wheel appbin
 ログインしなおすと(gdmでログインは変わらないようなので、
                    たぶん sudo systemctl restart gdm をする)
 $ groups
 okazaki appbin

 コンソールから(sudoは使えなくなっているので)、
 # usermod -aG wheel okazaki   #グループに追加
 
 ログインしなおして、
 $ groups
 okazaki wheel appbin
 $ sudo ls
 Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos


** NIC関係 [#ac91cfa2]

 どうしてもルータを超えてつながらないときは、センターにMACアドレスを登録してあるかを
 確認する(大学の仕様)。
 
 ip address show  #全てのNICのIPアドレスなどを表示
 ipconfig /all    #Windowsで、IPアドレスなどを表示
 
 ip route         #ルーティングテーブルを表示
 ip route del default via 10.1.1.1 dev enp5s0  #一時的に 10.1.1.1 dev enp5s0
                              #のデフォルトルートを削除する(再起動で元に戻る)
 
 tracert 172.64.155.209  #Windowsでの tracerouteコマンド
 
 dig note200.local             #IPを引く
 dig note200.local @localhost  #サーバーlocalhostで IPを引く
 dig -x 133.60.113.219        #IPの逆引き
 
 $ hostname -I    #IPアドレスを表示

(memo) CentOS7でNICをdownさせるには ifconfig enp1s0 down とする。spiraeaで内側NICを
downのまま shutdownするとフリーズするので、upしてからshutdownすること。また、shutdown
以外にいろいろ障害(NFS,SGE)が発生するようだ。

(memo) nmcliコマンド https://www.server-world.info/query?os=Rocky_Linux_8&p=initial_conf&f=3


** systemctl [#m9bb3a27]
  systemctl list-units --type=service  #起動中のサービスの一覧表示
  systemctl list-units --type=service --all  #サービスの一覧表示
  systemctl list-unit-files --type=service   #  〃             (シンプル)

  systemctl のいくつかのコマンド
    - start, stop, restart  起動、停止、再起動
    - status                ステータス表示
    - enable, disable       自動起動有効、自動起動無効


**firewall-cmd [#o4d3cc0d]
  firewall-cmd --state            #ファイアウォールの状態表示
  firewall-cmd --list-services    #開けた設定にしているポートの一覧

  firewall-cmd --get-active-zone           #ゾーンの表示(NIC毎)
  firewall-cmd --list-all --zone=external  #externalゾーンの設定表示

  firewall-cmdで設定をするとき、
    --permanentオプション付きは、設定ファイルに書き込むだけ。
    --permanent付けないと、設定はすぐに反映するがリブートで元に戻る。


** sudo [#p3610aa2]
 sudo -i           #ルートユーザ環境で、ログインシェルを起動する
 sudo -i コマンド  #ルートユーザ環境で、コマンドを動かす
 sudo コマンド     #ユーザ環境で、ルートユーザ権限で、コマンドが動く
 sudo -c "コマンド1; コマンド2"    #複数のコマンドを実行するとき


//--------------------------------------------------------------------------------

** iperf3 通信帯域速度測定 [#f8c0bf7a]

 サーバーを起動
 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 [#l3412d43]
 netstat    #オプション無しは ESTBLISHEDのみを表示する
    #-a をつけると、接続まち、接続まちでないもの、すべてのソケットを表示
    #-t をつけるとTCPを表示
    #-u をつけるとUDPを表示
    #-n 名前解決をしない
 
 netstat -tanp  # TCP LISTENをみる

 netstat -r    #ルーティングテーブルを表示する
    #-n 名前解決をしない

 netstat -i    #インターフェース毎の統計情報を表示
               #(パケット衝突数など含まれる)


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


** ハードディスクの状態を調べる [#cfc99d91]

*** sar [#lc4438b8]
 ブロックデバイスのアクティビティを表示(デバイス毎にデバイス名で、今日の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 [#qa39a26f]
 sudo lsof -i    #プロセスが使用しているポートを表示する
 sudo lsof -i:80  #80ポートを使用しているプログラムを表示する


** /etc/shadowファイルの編集 [#o9d7c7d4]
 vipw -s

** sysctl [#v46ce3b4]

 $ 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


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

/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


** iptables [#f08caf4c]

 $ sudo iptables [-t filter] -L [チェイン名] -v -n
 
    -t filter はデフォルト。他に natなど
 
    -v 設定全体を省略しない
    -n IPやフラグなどを文字にしない
 
    -L 設定内容の表示。チェイン名を指定できる
 
 # CentOSの場合
 /etc/sysconfig/iptablesに設定されるテーブル・チェインの記載があるらしい。
 # Ubuntuの場合
 どこ?

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS