正在加载...
分页: 3/7 第一页 上页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]

CPU负载监控脚本

[ 2009/06/30 12:48 | by selboo ]
#!/bin/bash
load=`uptime`
shijian=`date +%Y-%m-%d-%T`
file=cpustatus.txt
touch $file
all=`cat $file |wc -l`
printf "$load $shijian\n" >> $file

if [[ $all > 60 ]] ; then
starttime=`cat $file |awk '{print $13}'|sort -r|tail -1`
stoptime=`cat $file |awk '{print $13}'|sort -n|tail -1`
loadavg=`cat $file |awk '{avg1+=$10;avg2+=$11;avg3+=$12}END{print avg1/NR,avg2/NR,avg3/NR}'`
high=`cat $file |awk '{print $10}'|sort -n|tail -1`
low=`cat $file |awk '{print $10}'|sort -r|tail -1`
printf "$starttime \n load average $loadavg \n high $high \n low $low \n $stoptime \n\n" > j
#printf "load average $startus \n" >>j
#mv $f $f.$b
fi

在配合 Crontab
linux crontab命令
Crontab 实例(转)

邮件转发
linux下发送邮件..
Tags: ,

rsync结合find技巧

[ 2009/06/26 16:39 | by selboo ]
rsync -avpz -e ssh 192.168.1.100:/ `find /home -name "*.sh"` /backupdir

这条指会找到/home 及其子目录下,所有的*.sh文件,并将备分到/backupdir这个目录
Tags: ,

shell 的比较

[ 2009/06/25 18:02 | by selboo ]
测试的标志 代表意义
-e 该『档名』是否存在?(常用)
-f 该『档名』是否为档桉(file)?(常用)
-d 该『档名』是否为目录(directory)?(常用)
-b 该『档名』是否为一个 block device 装置?
-c 该『档名』是否为一个 character device 装置?
-S 该『档名』是否为一个 Socket 档桉?
-p 该『档名』是否为一个 FIFO (pipe) 档桉?
-L 该『档名』是否为一个连结档?
-r 侦测该档名是否具有『可读』的属性?
-w 侦测该档名是否具有『可写』的属性?
-x 侦测该档名是否具有『可执行』的属性?
-u 侦测该档名是否具有『SUID』的属性?
-g 侦测该档名是否具有『SGID』的属性?
-k 侦测该档名是否具有『Sticky bit』的属性?
-s 侦测该档名是否为『非空白档桉』?
-nt (newer than)判断 file1 是否比 file2 新
-ot (older than)判断 file1 是否比 file2 旧
-ef 判断 file2 与 file2 是否为同一档桉,可用在判断 hard link 的判定上。 主要意义在判定,两个档桉是否均指向同一个 inode 哩!
-eq 两数值相等 (equal)
-ne 两数值不等 (not equal)
-gt n1 大于 n2 (greater than)
-lt n1 小于 n2 (less than)
-ge n1 大于等于 n2 (greater than or equal)
-le n1 小于等于 n2 (less than or equal)
test -z string 判定字串是否为 0 ?若 string 为空字串,则为 true
test -n string 判定字串是否非为 0 ?若 string 为空字串,则为 false。
注: -n 亦可省略
test str1 = str2 判定 str1 是否等于 str2 ,若相等,则回传 true
test str1 != str2 判定 str1 是否不等于 str2 ,若相等,则回传 false
-a (and)两状况同时成立!例如 test -r file -a -x file,则 file 同时具有 r 与 x 权限时,才回传 true。
-o (or)两状况任何一个成立!例如 test -r file -o -x file,则 file 具有 r 或 x 权限时,就可回传 true。
! 反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true
Tags:
shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符`

1. 单引号 ( '' )
# grep Susan phonebook
Susan Goldberg 403-212-4921
Susan Topple    212-234-2343
如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件
# grep 'Susan Gold' phonebook
Susan Goldberg 403-212-4921
当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符

2. 双引号 ( " " )
双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
# x=*
# echo $x
hello.sh menus.sh misc.sh phonebook tshift.sh
# echo '$x'
$x
# echo "$x"
*
这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。 对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下: shell扫描命令行,把x的值设为星号*;
shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单;
shell启动执行echo命令,把文件清单作为参数传递给echo.
这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数

3. 反引号(``)
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
# echo The date and time is `date`
The date and time is 三 6月 15 06:10:35 CST 2005
# echo Your current working directory is $(pwd)
Your current working directory is /home/howard/script

4. 反斜杠 backslash-escaped( \ )
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号
echo -e "\n"
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。
Tags: ,

防止脚本多次执行(一)

[ 2009/06/16 17:48 | by selboo ]
while [ `ps x |grep -v grep|grep filename.sh|wc -l` -gt 0 ];
do
        exit
done


把内容放在脚本最上面

filename.sh 替换为你要监控的脚本名字

还有一种方法是 死循环 可以根据不同的环境,不同的脚本内容,使用的方法也同步,方法很简单日后在写出来
Tags:
分页: 3/7 第一页 上页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]