Telnet自動化 簡易版

コマンド内容をシェルに書いておく。速すぎると失敗するのでスリープを入れる

#!/bin/sh
sleep 2; echo LOGIN_ACCOUNT
sleep 2; echo PASSWORD
sleep 5; echo pwd
sleep 1; echo exit

実行は以下のように行う

sh test.txt | telnet 192.168.x.x

コマンド集

ディレクトリ古い順に表示して6位から表示

ls -t1 | tail -n +6 

リソース監視

dstat -am --top-bio --top-io -n 5

ファイルを直接書き換える

sed -i 's/hogehoge/fugafuga/' hoge.txt

findとのあわせ技

find . -name "*.css" | xargs sed -i 's/fuga//'

gzのファイルを展開せずにgrepする

zgrep "キーワード" xxxlog.gz
zgrep "キーワード" xxxlog.gz | wc -l
zgrep "キーワード" xxxlog.gz > grepresult.txt

ftp専用ユーザの作成

useradd -s /sbin/nologin ユーザ名

ls編

該当ディレクトリ以下ではなく該当ディレクトリだけの情報を見るls -d
ディレクトリだけ表示ls -algrep ^d

指定ディレクトリ以下の総ディスク使用量を求める。

du -h --max-depth=1 /var/tmp

開いているポートを見る

netstat -tpl

touchで日付時刻指定

touch -t 200612312400 lastupdate

ファイルに基準時刻でtouchしておき、以下のコマンドでその時点以後に更新されたファイルがわかる。

find . -newer lastupdate

findで複数場所から指定のファイルを探す

find /usr/local /usr/bin /usr/sbin -type f -print

findで見つけたファイルと.bkを持つファイルのdiffを一気に表示

find . -name "org.txt" -print0 | xargs -0 -i diff {} {}.bk

上記でorg.txtとorg.txt.bkの比較になる。sedでの書き換えと合わせ技

findでフルパス

探す場所をフルパスで指定すればよい。手動で入力してもよいが、pwdを使うと楽

find `pwd` -name "*" 

findで最終更新日を基準にファイルを探す

find ./ -mtime +50 -name "*.gz"
find ./ -mtime -50 -name "*.gz"
find . -mmin -2
find ./ -mtime +50 -name "*.gz" | xargs rm -f

危険なのでいったんリストアップしてから、|以降の処理を加えるとよいだろう

find . -path "./backup" -prune -o -type f -name "*.txt"

ここではbackupフォルダを検索対象から外し、もうひとつの条件を-oオプションで付与している。

ファイル数が多すぎるフォルダから1000ファイルずつバックアップ

rmやlsで「引数リストが長すぎます」のエラーが出てしまった時の対応でまずバックアップを取得したかったので1000ファイルずつ別のフォルダ(ここでは1_work)にコピーした。

ls --color=never | head -n 1000 | xargs -I {} mv -v {} ../1_work/

emacsのバックアップを消す

find . -name "*~" | xargs rm

特定の関数を使っているファイルをリストアップ

find . -name '*.php' -type f -print | xargs grep wordwrap 2>/dev/null
find . -name "*.php" -type f | xargs grep echo

自分がどのグループに所属するか等の情報を見るコマンド

id

isoイメージをマウントする

mount -o loop xxxx.iso iso_tmp

画面のログを取る〜script

script ログファイル名
exitするまで画面内容をログにためてくれる。エスケープシーケンスを正しく表示させるためログはcatでみるべし

指定の行数でファイル分割〜split

split -l ? intput.txt

psですべてを表示させる

ps -efw

lastログのDNSホスト取得

last  | grep "\.r" | awk '{ print $3 }'

不正侵入者のIP取得(Linux限定)

grep Did secure* | awk -F" " '{print $12}'
grep Illegal secure* | awk -F" " '{print $10}' | uniq
grep refused /var/log/secure*  | awk -F" " '{print $10}' | sort  | uniq -c | wc -l
grep refused /var/log/secure*  | awk -F" " '{print $10}' | sort  | uniq -c | sort -r -n

CSVの特定列取得

echo "removed,b,c,d" | awk -F"," '{print $2","$3","$4}'

n日前GET

date --date 'n days ago' '+%y%m%d'

日付設定(Linux)

2006/02/15 11:30
date 0215113006

特定のユーザーにのみsu - を許可

vi /etc/pam.d/suで下記部分をアンコメント
auth       required     /lib/security/pam_wheel.so use_uid

シャットダウンする

shutdown -h now(haltはNG)

HDDの速度調査

hdparm -ft /dev/hda

ハードウェア情報

lshwをインストールする。ほかにもlspciやlsusbがある

コメント除去

grep -v ^#

コメントと空行も除去

grep -v -e "^[ \t]*#" -e "^$" /etc/httpd/conf/httpd.conf

zipでディレクトリごと圧縮

zip -r xxxx.zip ./圧縮したいディレクトリ

改行コードをみる

cat -v ファイル名

CRLFなら^Mが行末に出る

gzで圧縮されたファイルを解凍せずに見る

zcat ファイル.gz | more

HOSTNAME変更

hostname NEW_NAME
vi /etc/sysconfig/network編集
vi /etc/hosts編集
ネットワーク再起動
/etc/init.d/network restart

キーボード編

CRL+Dでログアウト

有名ソフトウェア

AWK

awk -F "delimiter" 'print {$1}'
grep wiki access_log | awk '{ printf("%10s,%10s\n",$1,$11)}' | grep -v "-" | grep -v 221.186.64.20

ダウンロードテクニック

正当性確認

md5sum ファイル名
sha1sum ファイル名

ネットワークの通信量を調べる

netstat -ic

ソースは以下のページ

http://www.math.kobe-u.ac.jp/~kodama/tips-netstatus.html

文字コード変換

nkf

nkf 

iconv

iconv -f EUC-JP -t iso-2022-jp 入力ファイル名
Counter: 14837, today: 1, yesterday: 5

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS