トップ 一覧 検索 ヘルプ RSS ログイン

LN_commandの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
Linux コマンド(UNIXコマンドも含む)

!find

 3日以内の変更されたファイルを探す
 # find ./ -ctime -3 -depth -print
     ** find -depth -print -ctime -3 
     とやると全てのファイルが表示されてしまいます。
     理由 man find で調べる。(Hint 優先順位)

 7日以前の tmp ディレクトリのファイルを削除 
  # find ./tmp/ -type f -print -mtime +7 -exec rm -f {} \;
 10日以前の log/ 以下の *.nn.log ファイルを gzip で圧縮
 # find ./log/ -type f -name "*.??.log" -mtime +10 -exec gzip -f {} \;

 # フォルダの400日以前ファイルのみを削除
 > find ./ -maxdepth 1 -type f  -mtime +400 -print  -exec rm -f {} \;

 ----
  100日以上前のメールボックスを削除
  #!/bin/sh
  HOMEDIR="/home"
  #
  cd $HOMEDIR
  for n in [a-z]*
  do
    echo "USER $n"
    find $HOMEDIR/$n/Maildir -type f -mtime +100  -print -exec rm -f  {} \;
  done

 バックアップ
  Full
  # cd /hoge ; find . -depth -print | cpio -pduvm /backup
  差分
  # cd /hoge ; find . -depth -print | cpio -pdvm /bakcup    (u オプションを除く)

 チェックサム
 # cd /hoge; find ./ -type f | xargs md5sum


*tips-RSYNC
 # FULL
 # rsync -auvr ./hoge /backupmedia/BACKUP_Folder
 # 上書き
 # rsync -auvr --delete ./hoge /backupmedia/backup_folder

!ホスト名の変更
 # vi sysconfig/network
   HOSTNAME=www
   の行を

!カーネルモジュールの確認
  lsmod 確認
  insmod ロード
  rmmod アンロード

!Linux が利用するインタラプト等の一覧
 インタラプト 
 # cat /proc/interrupts
 ポート
 # more /proc/ioports

! CPU 
 # lscpu

 # cat /proc/cpuinfo
----
 error のリダイレクト
 shell_command > out_file 2>&1
----
 Swap の遷移
 #### zypper  install sysstat
 # sar -B
 ##  freebsd では BSDではiostat(1)コマンド
----
! swap 領域の開放
 swapoff -a && sudo swapon -a
----
!Kermit の代わりに /  screen /dev/ttyUSB0 9600
  screen /dev/ttyUSB0 9600
  (終了 C-a k (Ctrl+aを押した後に k) )
----
rpm のコマンド
,オプション,
,-ivh [rpm パッケージ名],rpmファイルのインストール
,-ivh --test [rpm パッケージ名] ,rpmファイルのインストール テスト
,-Uvh [rpm パッケージ名],rpmファイルのアップグレード
,-Uvh --test [rpm パッケージ名] ,rpmファイルのアップグレード テスト
,-ev [rpm パッケージ名], rpmファイルの削除
,-qa,インストールされている rpm ファイルの一覧を表示

スッティッキービット
,bit,option,comments,,
,4000,u+s,コマンドが所有者の権限で実行される,chmod 4755 cmannd-name
,2000,g+s,コマンドが所有グループの権限で実行される, chmod 2755 command-name
,1000,o+s,ディレクトリ内のファイルを名前変更・削除できるのは所有者のみ, chmod 1755 dir-name

コンソールのブラックアウトの禁止
 setterm -blank nn を実行すれば,nn 分不活性状態が続いた後に
 スクリーンを消すように端末ドライバーを設定できます
 (nn を0にすると,スクリーンセーブ機能はオフになります.
   古いカーネルの中には,次のキーボード割り込みが起こった後に初めて,
   スクリーンセーブ機能が働くようになっているものもあります)
[Linux How2|http://www.linux.or.jp/JF/JFdocs/archive/Keyboard-and-Console-HOWTO.html]

!FC3のカーネルソースのインストールの仕方
 # up2date --get-source kernel
 # インストールの仕方
 # rpm -ivh kernel-<version>.src.rpm
 # cd /usr/src/redhat/SPECS
 # rpmbuild -bp --target=<arch> kernel-2.6.spec
 #
 yum
 /etc/yum.conf
 [base]
 name=Fedora Core $releasever - $basearch - Base
 #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
 baseurl=ftp://ftp.kddlabs.co.jp/Linux/packages/fedora/core/$releasever/$basearch/os
 #
 [updates-released]
 name=Fedora Core $releasever - $basearch - Released Updates
 #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
 baseurl=ftp://ftp.kddlabs.co.jp/Linux/packages/fedora/core/updates/$releasever/$basearch
 
  warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
  public key not available for XXXXXXX.rpm
  などとエラーをだす場合には
   rpm --import http://www.fedoralegacy.org/FEDORA-LEGACY-GPG-KEY
   もしくは
   rpm --import /usr/share/rhn/RPM-GPG-KEY*
  とGPGキーをインポートする事


!ISOイメージをマウントするには
 # mount -t iso9660 -o loop ISOファイル名 マウントポイント

!CD-Rを作成するには
 # cdrecord --dev=/dev/cdrom image.iso
!DVD-Rを作成するには
 # dvdrecord -v -dao dev=/dev/dvd speed=1 image.iso
  TAO をサポートしていない云々で書き込めないので(涙)
!DVD-RAM をフォーマットするには!!
 注意 DOSモードで初期化します!!!
 # mkfs -t msdos -I -s 32 -S 2048 /dev/hda

!DEBIAN
 aptitude
 / モジュール検索
 + モジュールインストール
 
 apt install Package_name
 
 Java のパッケージをいれる場合には
 java-package
 java-common
 のをいれる事

!VMware の NAT
 クライアントOSでNAT(/dev/vmnet8)を使う場合
 defaltroute は xxx.yyy.zzz.2 になる
 また 詳細は /etc/vmware/vmnet8/ 以下に
 dhcpd と nat のディレクトリがあり dhcpd.conf と nat.conf があるので適宜修正する。

!SElinux の解除
恒久的に
 /etc/selinux/config の
 SELINUX=enforcing
 の行を(
 SELINUX=disabled
 にする
 
例 起動時の場合(一時的に)
 # getenforce
 Enforcing
 # setenforce 0
 # getenforce
 Permissive
 #

ファイル毎
 HTTPd の公開用の登録
 # restorecon /home/ユーザディレクトリ/public_html
 # restorecon -R /home/ユーザディレクトリ/public_html

 FTPで home_dir を接続許可にする
 /usr/sbin/setsebool -P ftp_home_dir on
 /usr/sbin/getsebool -a | gr

確認方法
 # sestatus

!Run Lebelへの登録
 標準への登録(ntpd の場合)
 # chkconfig --add ntpd
 # chkconfig --level 3 ntpd on
 # chkconfig --list ntpd
 ntpd            0:オフ  1:オフ  2:オフ  3:オン  4:オフ  5:オフ  6:オフl

!lzh ファイルの解凍
 Windows で圧縮された lzh ファイルの場合 linux 上で解凍するときに
 ファイル名が全て小文字になる場合がある。
 このときには
 lha -eg [ファイル名]
 で解凍する事

!Postfix の特定キュー(送信者 hoge@foo.bar.hoge) を削除
 postqueue -p | tail +2 | awk  'BEGIN { RS = "" } { if ( $7 == "hoge@foo.bar.hoge" )  print $1 } '  | tr -d '*!' | postsuper -d -
 # $7=sender, $8=recipient1, $9=recipient2 確認してね。。
 もしくは
 mailq | tail +2 | awk  'BEGIN { RS = "" }
 # $7=sender, $8=recipient1, $9=recipient2
 { if ( $7 == "hoge@foo.bar.hoge" )  print $1 } '  | tr -d '*!' | postsuper -d -

!vi のコマンド
 :%s/置換前文字列/置換後文字列/[ENTER] でカーソル近辺の文字列を1つだけ置換。
 :%s/置換前文字列/置換後文字列/g[ENTER] で文書内の該当文字列をすべて置換。
 :B,Es/置換前文字列/置換後文字列/g[ENTER] で行番号B〜E内の該当文字列をすべて置換。
 日本語対応のvi(jvim,jelvis)を使っている場合は、文字列に日本語を使えます。 

!スクリーンショット
  ImageMagic を使うばあい
      import -frame -screen capture.jpg
  GIMP を使う場合
      ファイル > 取り込み > 画面
  GNOMEの場合
      gnome-screenshot --delay=5 --window

!プロセスの優先順位を変更して実行する
 nice -n [-19 -- 19] command
 -19 (最優先)
 19  (優先度低い)

!パケットフォワードの設定
 # コマンドで実行
 echo 1 > /proc/sys/net/ipv4/ip_forward
 # # /etc/sysctl.conf
 net.ipv4.ip_forward = 1                # IP フォワード
 net.ipv4.conf.default.rp_filter = 1	# IP Spoofingの防御
 net.ipv4.tcp_syncookies = 1		# SYN Flood攻撃への対処


!Linux で P2P
 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/668usebittorrent.html
 http://azureus.sourceforge.net/

!FC5 右ボタンにTERMINAL メニューを!!!!
 マウスの右クリックメニューの中から起動したければ、
 yum -y install nautilus-open-terminal 
 でインストールすればメニュー内の順番は違いますが使えるようになります。
 
!rsync
 rsync のオプション
  -a 	可能な限りファイルの情報を保持してコピーする
  -u 	更新されたファイルだけをコピーする
  -v 	詳細表示
  -z 	ファイルを圧縮して転送する
  -r    ディレクトリを再帰的に行う
  -b 	古いファイルのバックアップを作成する
  -e ssh 	sshでデータを暗号化してコピーする
  --delete 	送信元に存在しないファイルを削除する
  --exclude 	指定したファイルを除外してコピーする
 例
  rsync -auvzr --delete /etc/ /media/usbdisk/LNX5/etc/
  rsync -auvzr --delete --exclude='spool/squid' /var/ /media/usbdisk/LNX5/var/
  rsync -auvzr --delete /usr/ /media/usbdisk/LNX5/usr/
  rsync -auvzr --delete /root/ /media/usbdisk/LNX5/root/
  rsync -auvzr -e ssh /home/html/ user@servername:/home/httpd/html/
  #
  # ディレクトリレベルのバックアップ
  #
  rsync -auvr /x/foo/ /home/foo
  # rsync -auvr /SRC_DIR/foo/ /DIST_DIR/foo
  # キー ポイント SRC は最後に / をつけ DIST はつけない。。理由は DIR の事を考えると分かる。。

!外付けHDDの作成
 ## パーティションの作成
 #fdisk /dev/sda
  コマンド (m でヘルプ): n
  コマンドアクション
   e   拡張
   p   基本領域 (1-4)
  p
  領域番号 (1-4): 1
  最初 シリンダ (1-38913, default 1):
  Using default value 1
  終点 シリンダ または +サイズ または +サイズM または +サイズK (1-38913, default 38913):
  Using default value 38913
  
  コマンド (m でヘルプ): w
  領域テーブルは交換されました!
  
  ioctl() を呼び出して領域テーブルを再読込みします。
  ディスクを同期させます。
  
 ### 初期化(ファイルシステムの作成)
 # mkfs -t ext3  /dev/sda1
 mke2fs 1.38 (30-Jun-2005)
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 39075840 inodes, 78142160 blocks
 3907108 blocks (5.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=79691776
 2385 block groups
 32768 blocks per group, 32768 fragments per group
 16384 inodes per group
 Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616
 
 Writing inode tables: done
 Creating journal (32768 blocks): done
 Writing superblocks and filesystem accounting information: done
 
 This filesystem will be automatically checked every 23 mounts or
 180 days, whichever comes first.  Use tune2fs -c or -i to override.
 #
 
 #  ReiserFS の場合
 # # mkreiserfs /dev/hda4
 # # mkfs.reiserfs /dev/hda4
 # # mkfs -t reiserfs /dev/hda4
 Command (m for help): p

 FAT32 での場合
 Disk /dev/sdb: 200.0 GB, 200049647616 bytes
 255 heads, 63 sectors/track, 24321 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 Disk identifier: 0xb59d6804
 
   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1        3824    30716248+   c  W95 FAT32 (LBA)
 /dev/sdb2            3825       24321   164642152+  83  Linux
 
 
 Command (m for help): t
 Partition number (1-4): 2
 Hex code (type L to list codes): c
 Changed system type of partition 2 to c (W95 FAT32 (LBA))
 
 Command (m for help): p
 
 Disk /dev/sdb: 200.0 GB, 200049647616 bytes
 255 heads, 63 sectors/track, 24321 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 Disk identifier: 0xb59d6804
 
   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1        3824    30716248+   c  W95 FAT32 (LBA)
 /dev/sdb2            3825       24321   164642152+   c  W95 FAT32 (LBA)
 
 Command (m for help): w
 The partition table has been altered!
 
 Calling ioctl() to re-read partition table.
 
 WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
 The kernel still uses the old table.
 The new table will be used at the next reboot.
 
 WARNING: If you have created or modified any DOS 6.x
 partitions, please see the fdisk manual page for additional
 information.
 Syncing disks.
 
 ファイルシステムの作成
 # mkfs.vfat -v -F 32 /dev/
 # fdisk /dev/sdb
 ####
 # USB の場合
 # mkfs.vfat -v -c -F 32 /dev/sdXn


!SUSE のインストールの時の注意
 ランレベル3のときに 画面サイズが 80x24 にならない時がある
 この時に /boot/grub/menu.lst の 
 
 kernel /vmlinuz root=/dev/xxxx vga=0x31a    resume=/dev/xxxx  splash=silent showopts
 
 の様になっているので vga=0x31a の部分を vga=normal に変更する!! 
 数値の意味
,色数/解像度,640x480,800x600,1024x768,1280x1024,
, 256色,301,303,305,307,
, 32000色,310,313,316,319,
, 64000色,311,314,317,31A,
, 1677万色,312,315,318,31B,


!suse10.2 に radeon X1600 openSUSE 10.2
 If you want or need to use the latest and greatest ATI driver, continue here .

 Use
   YaST -> Software -> Change installation Source -> Add
   Protocol: http
   Server Name: : www2.ati.com
   Directory on Server: suse/10.2
 to add the ATI http server as additional installation source.
 Now use
 
   YaST -> Software -> Install and Delete Software
 
 to install the ATI/fglrx driver. Select the following packages:
 
   x11-video-fglrxG01
   ati-fglrxG01-kmp-<kernel-flavor>
 
 <kernel-flavor> depends on your installed kernel. Check with
 "uname -r" for installed default/smp/bigsmp kernel. Use "sax2 -r"
 for X.Org configuration.



----
 xterm を終了しても子プロセスが終了しないように。。する方法
 nohup :コマンドを利用する
 
 #!/bin/sh
 nohup ./hoge.sh &

--
 全2重・半二重の見分けかた。
 ethtool eth1
 とやる
  ethtool -s eth1 autoneg off speed 100 duplex full
 とすると 100baseTX の 全2重に変更した。。
 # vi /etc/sysconfig/network-scripts/ifcfg-eth1
 
 DEVICE=eth1
 BOOTPROTO=static
 ONBOOT=yes
 TYPE=Ethernet
 IPADDR=192.168.0.254
 NETMASK=255.255.255.0
 ETHTOOL_OPTS="autoneg off speed 100 duplex full"   <<<追加

----
!! OpenSUSE 10.2
! リポジトリの変更
  /sbin/yast2 inst_source & を実行
 oss レポジトリ
 http://ftp.riken.go.jp/Linux/opensuse/distribution/10.2/repo/oss/
 http://ftp.lab.kdd.co.jp/Linux/distributions/opensuse/distribution/10.2/repo/oss/
 http://ftp.novell.co.jp/pub/opensuse/distribution/10.2/repo/oss
 non-oss レポジトリ
 http://ftp.riken.go.jp/Linux/opensuse/distribution/10.2/repo/non-oss/
 http://ftp.lab.kdd.co.jp/Linux/distributions/opensuse/distribution/10.2/repo/non-oss/
 update レポシトリ
 ftp://ftp.novell.co.jp/pub/suse/suse/update/10.2/
 http://ftp.riken.go.jp/Linux/suse/suse/update/10.2/
 http://ftp.lab.kdd.co.jp/Linux/distributions/SuSE/suse/update/10.2/

!! OpenSUSE 10.3
! リポジトリの変更
  /sbin/yast2 inst_source & を実行
 oss レポジトリ
 http://ftp.riken.go.jp/Linux/opensuse/distribution/10.3/repo/oss/
 http://ftp.lab.kdd.co.jp/Linux/distributions/opensuse/distribution/10.3/repo/oss/
 http://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/oss
 
 non-oss レポジトリ
 http://ftp.riken.go.jp/Linux/opensuse/distribution/10.3/repo/non-oss/
 http://ftp.lab.kdd.co.jp/Linux/distributions/opensuse/distribution/10.3/repo/non-oss/
 http://ftp.novell.co.jp//pub/opensuse/distribution/10.3/repo/oss/
 
 update レポシトリ
 http://ftp.novell.co.jp/pub/suse/opensuse/update/10.3
 http://ftp.lab.kdd.co.jp/Linux/distributions/opensuse/update/10.3/
 http://download.opensuse.org/update/10.3/

 ATI
 http://www2.ati.com/suse/10.3

----
! opensuse 11.4 の firefox4 
opensuse 11.4 の firefox4 で 日本語IME が動かない問題
 env GTK_IM_MODULE=xim firefox 
として起動すれば問題はないと思う。。まだテスト中
 注意
 *アルバイト君が .bashrc に
   export GTK_IM_MODULE=xim
 を追加してパニックになっていました。。(よく考えればわかりますよ。。)
----
!bash のヒストリーログを削除する
 bashのhistoryを削除するには
 
 $ history -c
----
!awk の使い方
  久しぶりに使おうとしてハマった。。(笑)
  squid のログのモニタ。。
  
  tail -f ./a.log | awk '{print $1,$3,$4,$6,$5}'
----
!date コマンドの
 MST のtimezone を知りたい
  > env TZ=MST date "+%Y/%m/%d%n %H:%M:%S"
  2013/07/29
  22:31:01
----
!Cable 抜け
 cat /sys/class/net/eth0/operstate
----
!スループットの計測
http://nuttcp.net/nuttcp/
 $ wget http://www.lcp.nrl.navy.mil/nuttcp/nuttcp-6.1.2.tar.bz2
 $ tar xvjf nuttcp-6.1.2.tar.bz2
 $ cd nuttcp-6.1.2
 $ make nuttcp

 サーバ
 $ nuttcp -S

 クライアント
 $ nuttcp xxx.xxx.xxx.xxx

dstat を使う
https://t-min.hatenablog.com/entry/2018/03/18/213624

https://github.com/dagwieers/dstat
 dstat 


sar を使う
 インストール
 # yum install sysstat
 計測 
 ## sar 間隔 回数
 #  sar -o /tmp/sar.log 5 30
 データ参照
 ## CPU
 # sar -f /tmp/sar.log
 ## IO
 # sar -b -f /tmp/sar.log
 ## MEMORY
 # sar -r -f /tmp/sar.log
 ## TCP
 # sar -n TCP -f /tmp/sar.log
 ### (DEV/IP/ICMP/TCP/UDP などがあり ALL で全部を出力) 

NDT

https://github.com/ndt-project/ndt/wiki
----
!IO の負荷を減らして処理
 DD の時
 ionice -c3 dd if=/dev/zero of=100GB.img bs=1M count=102400 oflag=sync
 
 # rsync コマンドを用いるケース
 rsync -av --bwlimit 10000 src dst

 # 大量のファイルを削除
 find ./foobar  -exec sleep 0.1 \; -delete -print

 # 大きなファイルを削除
 truncate コマンド使えば良いらしい

----
! S.M.A.R.T チェック  
    smartctl /dev/sda -i
----
! wifi のチェック
  224  sudo iwconfig -a
  252  sudo iw help
  253  sudo iw dev
  254  sudo iwconfig  
  269  sudo iw phy 
  274  sudo iwconfig 
 1002  /usr/sbin/iwconfig 
----
! wifi のAPの強度を見る
 $ nmcli dev wifi
----
! ハードウェアインフォメーション
 ディストリビューションを調べる
 $cat /etc/issue

 CPU を調べる
 $cat /proc/cpuinfo

 メモリを調べる
 $cat /proc/meminfo | tail 30

 $ free

 $ ps auxwwO-r | head

 $ dstat -tclmgdnpy --tcp 5

 $ sudo slabtop -o -s c | head -n 15

 $ while true; do date '+%H:%M:%S ' | tr -d '\n'; cat /proc/sys/fs/dentry-state; sleep 5; done
----
! ソースの印刷
 > cat your_progam_code.c | a2ps -M A4 -L 80 -l 125 -r --output=P.ps
 
 > cat PR.c | a2ps -M A4 --line-numbers=1  -L 80 -l 125 -r --output=P.ps 
----
! ENV コマンド
 複数書ける(スペースで区切る??)
 env HTTP_PROXY=http://192.168.1.21:8080 HTTPS_PROXY=http://192.168.1.21:8080 /usr/bin/skypeforlinux
----
 Iwlist
 next.......