#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の場合 どこ?