historyはどのくらいの履歴を管理しているんだろう?
vi /etc/profile
の39行目あたりに
HISTSIZE=1000
とあるので、デフォルトが1000行ということみたい。
忘れそうな出来事は忘れたころにやってくるので3000ぐらいまで増やしておくことにする。
historyはどのくらいの履歴を管理しているんだろう?
vi /etc/profile
の39行目あたりに
HISTSIZE=1000
とあるので、デフォルトが1000行ということみたい。
忘れそうな出来事は忘れたころにやってくるので3000ぐらいまで増やしておくことにする。
なんでこんな事しなきゃいけないかというと、MySQLでクエリログをちょっと長時間で取る必要があったから。
1時間で100M越えるんだもんなー
と、愚痴ってもしょうがないのでサクサク進める。
やってることは簡単。「/etc/cron/daily/logrotate」を「/etc/cron/hourly/logrotate」にコピーする。
それだけ。
cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate
以上。
ユーザリストを確認したい時は
/etc/passwd
でリストが出るのでこれで確認する。
ユーザが所属しているグループは
id [ユーザ名]
で出てくる。
id
だけ打つと自分の所属しているグループが確認できる。
ユーザの追加は
adduser [ユーザ名]
で。
これはMySQLやsambaのユーザ追加とは別なので注意。
userdel [ユーザ名]
だとユーザ削除。
iptablesを全くわかっていないので、駄文的に書いてみる。
iptablesのマニュアルはここにあるのでよく読む。
現状を把握したい時は
iptables -L
で状況を確認できる。
とりあえず、デフォルトはこんな感じ。
[root@localhost ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp any ACCEPT esp -- anywhere anywhere ACCEPT ah -- anywhere anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ACCEPT udp -- anywhere anywhere udp dpt:ipp ACCEPT tcp -- anywhere anywhere tcp dpt:ipp ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
簡単にオプションの意味を書き出してみる。
[ -A ] → [ INPUT ][ FORWARD ][ OUTPUT ]の条件として付け加えます(append)。
[ -m ] → モジュールを呼び出します(module)。
[ –state ] → コンマで区切られた接続状態のリストを指定します。
[ -m ] → モジュールを呼び出します(module)。
[ -p ] → プロトコルを指定します。
[ –dport ] → 宛先のポート番号を指定します。
[ -j ] → 今までの条件にマッチしたパケットをどうするか指定します。
上記を踏まえると、
[ -A INPUT ] → INPUTに付け加えます。
[ -m state ] → stateモジュールを呼び出します。
[ –state NEW ] → 接続状態はNEWで。
[ -m tcp ] → tcpモジュールを呼び出します。
[ -p tcp ] → プロトコルはTCPで。
[ –dport 80 ] → 80番ポート宛で。
[ -j ACCEPT ] → 許可します。
ということで、
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
は、
「接続状態はNEW」で「プロトコルはTCP」で「80番ポート宛」なパケットが来たら、
そのパケットは「INPUTの条件」として「許可」する。
という条件を付け加える。
なのかな?
[ -m tcp ]の扱いは何なんだ?ということでググると
http://search.luky.org/linux-users.a/msg03917.html
ということで、[ -p tcp ]を書くなら一緒につけておこうよ的な感覚らしい。
最悪、訳が分からなくなったら
iptables -F
で全てをリセットできるので、初めからやり直せる。
とりあえずは
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
で、httpとsshが通れば文句言わないことにする。
自宅内のみか何かで要らないなーと思った時は、
chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
なので
chkconfig iptables off
で無効に。
chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
を確認しておく。
samba-clientがインストールされていなかったら
yum install samba-client
で事前にインストールする。
自分が誰かに共有ディスクを配信するわけではないのでclientだけでOK。
vi /etc/fstab
で、以下のようなカンジで追記する。
# Drive-D //192.168.1.1/media/D /mnt/D/ smbfs username=hoehoe,password=moemoe,defaults 0 0
変更・保存したら
mount -a
とやると、fstabに書いてあることを再度実行してくれるので、マウントできるか確認して終了。
ntpdate IPアドレス
これだけ。
これをrc.localかcrontabにでも書いておけば定期的にやってくれる、はず。
これもめんどくさいということであれば、ntpd を使ってやる。
vi /etc/ntp.conf
で、22~24行目に
server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org server 2.centos.pool.ntp.org
という記述があるので、ココを自分の好きなntpサーバに書き換える。
例えば、
server 192.168.100.109
のように。
書き換えたら保存して
/etc/init.d/ntpd start
で実行する。
ntpd はデフォルトでは自動起動しないようになっているので
chkconfig ntpd on
で再起動しても自動的に起動するように設定しておく。
vmware playerにCentOSを入れようとすると半自動化でインストールしてくれる。
途中のステップがすべて省かれるのでありがたいんだけど、途中で無効にしたいkdumpが有効で自動設定されてしまう。
で、割り当てているメモリが少ないのでkdumpは起動に失敗する。
なので無効にしたい。
chkconfig kdump off
で無効に。
chkconfig --list | grep kdump kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off
無効になっていることを確認して終了。
renice [-n][-p] [ ...]
Priorityの範囲は -20 から 19 まで。
大体のものが 0 で動いているようなのでそれより大きい数値を指定すれば、プライオリティが下がる、と。
[ yum ] も社内からネットに接続するにはプロキシの設定が必要。
vi /etc/yum.conf
で以下の追記をしてみる。
proxy=http://IPアドレス:ポート番号/
追記したら
/etc/init.d/yum-updatesd restart
で再起動してから再度 [ yum update ] を試みる。
ちなみに追記が
proxy=http://katzplus.com/xxxxx.pac
では失敗しました。
sshでログインするときにパスワード入力が面倒。
もしくはscpとかやるときに自動でログインしたい。
というときのために。
ssh がインストールされていなかったらクライアント側サーバ側ともに事前にインストールしておく。
yum install openssh-clients
クライアント側(あやつる側)(192.168.1.10)で
ssh-keygen -t rsa
これで鍵生成。
作るときに
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
とか聞かれる気がする。
passphrase 入れると毎回聞かれて自動でログインって言う目的に合致しないので、
今回入れない。
rootユーザでログインしていれば[ /root/.ssh/ ]配下に id_rsa と id_rsa.pub が出来るはず。
id_rsa.pub が公開鍵なので色々なところに使いまわす。
鍵を作ったクライアントがわかるように
mv id_rsa.pub id_rsa.pub.192.168.1.10
で変更しておく。
そのまま
scp id_rsa.pub.192.168.1.10 root@192.168.1.11:/root/.ssh/id_rsa.pub.192.168.1.10
で id_rsa.pub をサーバ側(あやつられる側)にコピーして。
サーバ側(192.168.1.11)にコピーされたことが確認できたらサーバ側で
cat id_rsa.pub.192.168.1.10 >> authorized_keys
とかやる。
authorized_keys ファイルが存在するかどうかは気にしない。追記だから。
むしろすでにあるならcpとかで下手に上書きしないように気をつける。
で、
authorized_keys が作成された場合はパーミッションが644あたりになっているので、
chmod 600 authorized_keys
でrootさん以外触れないようにしておく。
したらクライアント側(192.168.1.10)から
ssh -i /root/.ssh/id_rsa root@192.168.1.11
みたいにしてサーバ側にログインできるか確認する。
『-i』が秘密鍵を使用するよオプション。-iの後ろでファイル名を指定する。
ログインできたら後はscpなりなんなり。
クライアントはWindowsだ!
というわがままさんの場合はサーバ側で鍵生成、
出来たid_rsa.pubをそのままauthorized_keysにコピー、
id_rsaをWindowsのクライアントに持っていってログインする方法でも構わないです。
要はid_rsaとid_rsa.pubが対になっているということだけ。
イメージとしては
ってカンジ。
まずは公開鍵秘密鍵の生成に書いてあるとおりに秘密鍵と公開鍵を設定しておく。
shファイルに以下の様に記載する。
scp -qpi /秘密鍵ディレクトリ/秘密鍵ファイル名 /コピー元ディレクトリ名/コピー元ファイル名 ユーザー名@公開鍵のあるサーバIPアドレス:/コピー先ディレクトリ名/コピー先ファイル名
scp -Cqpi /root/.ssh/id_rsa /etc/squid/shield.txt root@192.168.1.11:/etc/squid
「-C」は圧縮して送信
「-q」はquietで実行
「-p」はタイムスタンプを変更しないでコピー
「-i」は秘密鍵指定
上の例は操作側端末にあるshield.txtを先方に送るけど、先方のモノを操作側端末に持ってきたい場合は逆に書けばいい。
scp -Cqpri /root/.ssh/id_rsa root@192.168.1.11:/etc/squid/shield.txt /etc/squid/
「-r」は再帰的にディレクトリのコピーするとき
shファイルを自分のユーザーディレクトリ直下とかに保存したら
「chmod +x hoehoe.sh」とかで実行属性をつける。
crontab -eでシェルを実行する時間に動作するように指定する。
これでイイかな?
ps aux | grep httpd | grep -v "\(root\|grep\)" | wc -l
1.ps aux
でプロセスリストを表示する。
2.grep httpd
でhttpdが含まれている行に限定する。
3.grep -v "\(root\|grep\)"
で、rootとgrepが含まれていない行に限定する。
4.wc -l
で、行数を数えて表示する。
という4段がまえらしい。