linux脚本范例,shell脚本示例

发几个自己以前写的脚本,其中有两个监控系统状态的简单脚本,修改一下可以直接拿来用。用到的方法,在我的shell学习笔记系列中都有介绍。由于脚本都比较简单,就不写那么多注释了,有需要修改借用的朋友可以在此留言。

##############################################################

# add 20 users one time

i=1

num=20

pass=123456

while [ "$i" -le "$num" ]

do

user="stu$i"

if grep "$user" /etc/passwd >/dev/null

then

:

else

useradd "$user"

#        passwd "$user" >/dev/null 2>&1 << EOF

#$pass

#$pass

#EOF

echo "$pass" | passwd --stdin "$user" >/dev/null 2>&1

fi

i=$((i+1))

done

# End of script

##############################################################

# To monitor cpu load by cmd "uptime"

# By licong on 2009/09/30

out_file=/tmp/uptime.out

mail_from=licong@aa.com

mail_to="licong@bb.com"

load_limit=1

> $out_file

field=$((`uptime | awk '{print NF}'` - 2))

load=$(uptime | awk '{print $'$field'}' | sed 's/,//')

load_int=$(echo $load | sed 's/\..*//')

if [ $load_int -ge $load_limit ]; then

(

echo -e "Load of cpu has exceeded $load \n"

date

echo

uptime

) > $out_file

fi

if [ -n $out_file -a -s $out_file ]; then

sendmail -f $mail_from -s "Load warming" $mail_to < $out_file

fi

rm -rf $out_file

# End of script

##############################################################

# My version of cp, ask for conferm

this_script=$(basename $0)

if [ $# -ne 2 ]

then

echo "Usage: $this_script from to"

exit 1

fi

from="$1"

to="$2"

if [ -e "$to" ]

then

echo -e "$to exists, overwrite (yes/no)? \c"

read answer

if [ "$answer" != yes ]

then

echo "copy not performed"

exit 0

fi

else

cp "$from" "$to"

fi

# End of script

##############################################################

# 带邮件通知功能的磁盘监控脚本。

#

# Monit using of disk bf "df -m"

# By licong on 2009/09/25

#

PCW_limit=75

PCA_limit=90

df_file=/tmp/df.out

echo -e "\n$(date)\n" > "$df_file"

#df -m | egrep -v '/dev/shm|cdrom|proc|Filesy' |      # for fs without lvm

df -m | sed 's/^ *//;/^[0-9]/!d' |                    # for fs with lvm

while read MB_total MB_used MB_free used dev_mount

do

PC_used=$(echo $used | cut -d% -f1)

if [ $PC_used -ge $PCW_limit -a $PC_used -lt $PCA_limit ]

then

echo "Warning: $dev_mount used has exceded $used !" >> "$df_file"

elif [ $PC_used -ge $PCA_limit ]

then

echo "Alarm: $dev_mount used has exceded $used !" >> "$df_file"

fi

done

echo >> "$df_file"

[ -n "$df_file" -a -s "$df_file" ] && mail -s "Warming of disk!" licong@aa.com < "$df_file"

rm -rf "$df_file"

# End of script

##############################################################

#  整理文档用的,把/data目录下所有.swf文件移动到子目录下,

#  子目录的名字取文件名的前2个字符;如果文件名只有

#  1个字符,则目录名为2个重叠的该字符

cd /data

ls | grep '.swf' > filelist

while read filename

do

mkdir -p ${filename:0:2}

mv ${filename} ${filename:0:2}

done < filelist

ls -1 | awk -F'.' '{

if (length($1)==1)

{

if (-d "$1$1")

{

system("mv "$0"/* "$1$1)

system("rm -rf lib/en/"$0)

}

else

{system("mv "$0" "$1$1)}

}

}'

# End of script

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值