Sunny.st,

日記とかばかりになった サーバ屋のはしくれのブログ。

小技

[tech]findの結果に対してコマンドを実行する

よく使うわりには、
すぐに忘れてしまう。


例)
/home/hoge 以下の30日以前のtimestampファイルに対して、
/home/hoge2 以下に移動させる。


コマンド)
find /home/hoge/. -type f -mtime +30 -exec mv {} /home/hoge2/. \;


ちょっと解説)
-exec  <- 検索結果に対して以下を実行する
{}      <- 検索結果が入る
\;       <- ";"はコマンドの終了を表す。"\"は";"のエスケープ



[追記]
すばらしすぎる説明のあるサイト↓
http://osada113.blog94.fc2.com/blog-entry-220.html







検索は、するな。検索は、するな。
著者:安田 佳生
販売元:サンマーク出版
発売日:2009-04-13
おすすめ度:3.5
クチコミを見る

duする時にマウントポイントを除外する

nfsマウントとかしてると
そのマウントポイントより上で du して
容量をチェックするとそのマウント先の容量まで
チェックしてしまいます。

そんなときは

du に -x オプションをつけると
duするディレクトリ以下でマウントポイント
があった場合、それを除外してくれます!


▼duのmanにはこんな風に書いてある
-x, --one-file-system
skip directories on different file systems


要は違うファイルシステムで構成されている
ディレクトリは除外してくれるってことね♪


ベンリー

net-snmpで64ビットカウンタ(64bit counter)を使用する


net-snmp 5.2.x 以降にて
OS:Linux

コンパイル時のconfigureオプションに
--enable-mfd-rewrites
をつけてコンパイル。

バージョン 5.3.x からデフォルトで有効になっている。

5.4.x では上記オプションをつけることで
FreeBSD等のOSでも使用可能。

参考にさせて頂いたサイト

Makefileをつくった


Makefileを作ってmakeしてみた

(ちなみに私の使っているCentOS5は
"GNU make" というやつとのこと。よくわからない!)


▼Makefileの文法
--------------------------------------------------
ターゲットのファイル: ターゲットファイルに依存するファイル
            実行内容
--------------------------------------------------
※実行内容の前の空白はかならずtabを使うこと!(鉄則)

と書いてもよくわからないので

例えば!

"testfile"というファイルに何らかの更新があると、
"hogehoge"というファイルの一番下に"sunny"という文字列を追記!


▼Makefile
-----------------------------------------
hogehoge: testfile
             echo "sunny" >> hogehoge
-----------------------------------------


▼実行!
-----------------------------------------------------------------------------
# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 8 Jan 8 16:15 hogehoge
-rw-r--r-- 1 root root 9 Jan 8 16:15 testfile

# cat Makefile
hogehoge: testfile
            echo "sunny" >> hogehoge

# cat hogehoge
Hello!!

# cat testfile
testtest

# vi testfile
(vi コマンドの編集作業で"testfile"に更新がかかる)

# cat testfile
testtesttest

# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 8 Jan 8 16:15 hogehoge
-rw-r--r-- 1 root root 13 Jan 8 16:16 testfile

# make
echo "sunny" >> hogehoge

# cat hogehoge
Hello!!
sunny

# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 14 Jan 8 16:17 hogehoge
-rw-r--r-- 1 root root 13 Jan 8 16:16 testfile

# make
make: `hogehoge' is up to date.
("hogehoge"のタイムスタンプが更新され,”hogehoge”の方が
"testfile"よりも新しいので"hogehoge' is up to date.(すでに更新済です)"とでる)
-----------------------------------------------------------------------------

おっけーい。

ちなみにtouchコマンドでhogehogeのタイムスタンプを
むりやり"testfile"より前にしたらmakeできた!
やはりタイムスタンプをみているもよう

♪〜

vpopmailでpop認証アカウントをフルアドレスでなくすjる方法


vpopmailを使ってバーチャルドメインでメールサーバを立てている場合
POPの認証アカウントは

hogehoge@sunny.com

と指定しなければならない。

だが!
vpopmailのホームディレクトリ( 自分の場合は/home/vpopmail)以下のetcディレクトリの下に
defaultdomainというファイルに任意のドメイン名を記述することで
@前までのアカウント名で認証可能!

たとえば
# echo "sunny.com" > /home/vpopmail/etc/defaultdomain
# chown vpopmail:vchkpw /home/vpopmail/etc/defaultdomain
(念のためオーナをあわせる)

とすると最初にあげたアドレスの場合

hogehoge

だけで認証が可能になる!


ezmlmにてMLの既存設定を保ちながら変更点だけ変更


どういうことかというと
ezmlmのオプション設定を変更したいときは
ezmlm-make -e
を使用。

例えば
hoge@sunny.comというMLで
-a : アーカイブ保存する
から
-A : アーカイブ保存しない
に変更したい場合は

# ezmlm-make -e -A /home/vpopmail/domains/sunny.com/hoge

と打てばよさそうなのだが
これではあくまでデフォルト設定値に-Aを加えただけ
になるので他の設定でデフォルト以外の値をとっている場合は
その設定まで上書きされてしまうのだ・・・。

そんなときー

# ezmlm-make -e -+A /home/vpopmail/domains/sunny.com/hoge

とすると-Aの変更部分以外は
現在の設定内容を保持してくれるのだ!

素敵☆

wgetコマンドでBasic認証を

wgetコマンドでBasic認証の認証を通る方法

ID -> sunny
pass -> testpass
URL -> http://sunny.com/basic.html
※URLは架空です
の場合

# wget --http-user=sunny --http-passwd=testpass http://sunny.com/basic.html

でOK。usernameとpasswardの文字列では
\でエスケープが使用可能らしい。


ファイルの中身を置換え


perlでファイルの中身を置換え!

# cat sunny_line
sunny01
sunny02
sunny03
#
# perl -i -pe 's|sunny|taiyo|' sunny_line
#
# cat sunny_line
taiyo01
taiyo02
taiyo03
#

useraddのDオプション

useraddの-Dオプション
でデフォルトで設定される内容を確認できる。

# useradd -D
GROUP=100 -> グループIDを100に設定する(よくわからん・・・)
HOME=/home -> デフォルトのホームディレクトリの場所
INACTIVE=-1 -> パスワードの期限切れからアカウントが無効になるまでの期限"-1"は無期限
EXPIRE= -> アカウントの有効期限
SHELL=/bin/bash ->シェル
SKEL=/etc/skel ->ホームディレクトリにコピーされるファイル郡(.bashrc/等)

echoコマンドで改行を出力


echoコマンドで改行を出力する方法

------------
# echo -e "\n"


#
------------


ただしこれだとechoコマンドは
デフォルトで改行が入ってしまい
改行が2行になってしまうので


---------------
# echo -n -e "\n"

#
---------------


-nでデフォルトの改行を無効に・・・
Access Counter
記事検索
アクセス

ジオターゲティング
パシフィカン
プロ野球データFreak
パリーグ順位表
Jリーグ順位
ダーツ
育てる
Categories
アーカイブ
わたくし
  • ライブドアブログ