用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#第二个参数为配置文件,需要绝对路径#返回valuegetConfigValue(){ 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.55getIpByUrl(){ 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}