用shell写的一些函数
属于统计系统的一部分,之后会慢慢写出来其它的部分
属于统计系统的一部分,之后会慢慢写出来其它的部分
#获取当前时间
getCurrentTime(){
current_time=`date --date="now" +%Y-%m-%d' '%H:%M:%S`;
echo $current_time;
}
#时间格式的转换
#如:2009-05-14 19:01:12 转换成 2009-05-14-19
formate_date(){
time=$1;
if [ -z "${time}" ]
then
pass;
else
echo $time|sed -n 's/ /-/p'|cut -b1-13
fi
}
#记录日志
logInfo(){
info=$1;
fileName=$2;
#判断文件是否存在,不存在则建立文件
#if [ -e "${fileName}" ]; then
# touch $fileName;
#fi
echo $(getCurrentTime) $info>>$fileName
}
#发送邮件
#第一个参数为主题
#第二个参数为内容
#配置文件的每一行为一个邮箱
send_mail(){
#mailfile="/usr/local/qs/p/config/mail.config"
subject=$1
content=$2
mailfile=$3
#组装邮件的发送地址
mailto=$(cat $mailfile |sed -n '1'p);
maillist=$(cat $mailfile |sed -n '2,$'p);
if [ -n "$maillist" ] ; then
for email in $maillist ;do
mailto=$mailto" -c "$email
done
fi
#发送邮件
echo $content|mail -s $subject $mailto
}
#获取配置文件的值
#配置文件的格式如:key=value
#第一个参数为key
#第二个参数为配置文件,需要绝对路径
#返回value
getConfigValue(){
key=$1;
configFile=$2;
#aa=$key为向awk传递值进去做处理
value=$(awk -F"=" '$1==aa {print $2}' aa=$key $configFile);
echo $value
}
#从url中获取ip地址
#如:http://192.168.1.55/webdav 返回的值是192.168.1.55
getIpByUrl(){
ulr=$1;
#ip=`echo $url |sed -n 's/[a-z:/-]*$//p'|sed -n 's/^[a-z:/-]*//p'`
ip=`echo $url|sed -n 's/^http:\/\/\([^/]*\)\/.*$/\1/p'`
echo $ip
}
#获取日志的文件名
#第一个参数为时间
#第二个参数为配置文件中日志的key值
#第三参数为配置文件
#返回日志的最终名称,其实就是把XXXX-XX-XX-XX替换为时间
getLogName(){
lasthour=$1;
key=$2;
configFile=$3;
value=$(awk -F"=" '$1==aa {print $2}' aa=$key $configFile|sed s/XXXX-XX-XX-XX/"$lasthour"/g );
echo $value
}
#获取下载日志文件的具体路径,若没有该ip的目录,则新建目录
#如:192.168.1.55 若没有该目录,则新建一个192.168.1.55的目录
#第一个参数为路径
#第二个参数为ip地址
getDownPath(){
ip=$2;
path=$1;
rp=$path"/"$ip
if [ ! -e "$rp" ] ; then
mkdir $rp
fi
echo $rp
}
#获取上一层的路径的路径(相当于工作目录)
getWorkPath(){
path=`pwd|sed -n 's/\(\/[a-z]*\)$/ /p'`
echo $path
}