>$log   #如果执行过程中有错误信息均输出到日志文件中  #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt "/> >$log   #如果执行过程中有错误信息均输出到日志文件中  #日志函数 #参数 #参数一,级别,INFO ,W"/>

★shell运行脚本事例_download

2019-09-19 14页 doc 27KB 23阅读

用户头像

is_807289

暂无简介

举报
★shell运行脚本事例_download1. Linux shell脚本输出日志笔记整理 1.日志方法简介: #日志名称 log="./upgrade.log"   #操作日志存放路径  fsize=2000000            #如果日志大小超过上限,则保存旧日志,重新生成日志文件        exec 2>>$log   #如果执行过程中有错误信息均输出到日志文件中  #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt $# ] t...
★shell运行脚本事例_download
1. Linux shell脚本输出日志笔记整理 1.日志方法简介: #日志名称 log="./upgrade.log"   #操作日志存放路径  fsize=2000000            #如果日志大小超过上限,则保存旧日志,重新生成日志文件        exec 2>>$log   #如果执行过程中有错误信息均输出到日志文件中  #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt $# ] then echo "parameter not right in zc_log function" ; return ; fi if [ -e "$log" ] then touch $log fi #当前时间 local curtime; curtime=`date +"%Y%m%d%H%M%S"` #判断文件大小 local cursize ; cursize=`cat $log | wc -c` ; if [ $fsize -lt $cursize ] then mv $log $curtime".out" touch $log ; fi     #写入文件 echo "$curtime $*" >> $log; }  2.使用举例  shell脚本内容: #! /bin/bash #数据库变量 localpasswd=xxxx mysqlhost=xxxx mysqluser=xxxx mysqlpasswd=xxxx  #日志名称 log="./upgrade.log"   #操作日志存放路径  fsize=2000000                   exec 2>>$log   #如果执行过程中有错误信息均输出到日志文件中  #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt $# ] then echo "parameter not right in zc_log function" ; return ; fi if [ -e "$log" ] then touch $log fi #当前时间 local curtime; curtime=`date +"%Y%m%d%H%M%S"` #判断文件大小 local cursize ; cursize=`cat $log | wc -c` ; if [ $fsize -lt $cursize ] then mv $log $curtime".out" touch $log ; fi     #写入文件 echo "$curtime $*" >> $log; }  echo "start update shell" ; mysql -h$sqlip -u$sqluser -p$sqlpasswd -e "use $db; set names gbk; -- -- 的结构 msgm_qdjyly -- DROP TABLE IF EXISTS msgm_qdjyly; CREATE TABLE IF NOT EXISTS msgm_qdjyly ( jylyid int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', jylb varchar(20) DEFAULT NULL COMMENT '交易类别', jylbmc varchar(50) DEFAULT NULL COMMENT '交易类别名称', jgm varchar(10) NOT NULL COMMENT '机构码', lyfs int(11) NOT NULL COMMENT '路由方式,1指定渠道,2按卡bin渠道', qdbh varchar(20) DEFAULT NULL COMMENT '渠道编号', qdmc varchar(50) DEFAULT NULL COMMENT '渠道名称', zt int(11) NOT NULL DEFAULT '1' COMMENT '状态,1正常,2关闭', bz varchar(100) DEFAULT NULL COMMENT '备注', PRIMARY KEY (jylyid) ) ENGINE=InnoDB  DEFAULT CHARSET=gbk COMMENT='交易路由信息' AUTO_INCREMENT=7 ; zc_log INFO "执行 CREATE TABLE  msgm_qdjyly 命令的结果为 : $? " ;  echo "执行 CREATE TABLE  msgm_qdjyly 命令的结果为 : $?  " ;  2. Linux自动清理日志shell脚本 发布时间:2014-12-21   编辑:www.jquerycn.cn 本文介绍了linux下自动清理日志的一段shell脚本,根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志。 1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志 3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的限制 shell小窍门 find –type f –print 时会根据换行或者空格来输出查找的文件,在不同的sh下有不同的反应,如果不做处理结合xargs 进行删除 更改操作,会有影响 所以需要增加 –print0 用 null来 作为边界符号,才敢结婚 xargs –o 来格式化输入 使用find 的时候 遵循最小结果集原则,find解析式从左到右,所有确保你在最左边的过滤符号能够过滤最大数据 可以根据需要增加到crontab中。 复制代码代码示例: #!/bin/sh   ###########################   #delete log blog.duplicatedcode.com   # in_day_num: like 1 2 is delete 2day ago logs   # in_log_path like tomcat log home   ###########################   in_log_path=${1}   in_day_num=${2}   tmp_delete_log=/var/log/deletelog/"`date +%Y%m`.log"   deleteLog()   {   inner_num=${1}   #find log   echo "[`date`] >> start delete logs---" >> $tmp_delete_log   find ${in_log_path} -type f -mtime ${inner_num} -print0 | xargs -0 rm -rf   echo "[`date`] >> end delete logs---" >> $tmp_delete_log   }   init()   {   mkdir -p /var/log/deletelog/   }   main()   {   init   if [ -z ${in_log_path} ];then   echo "[`date`] >> error log_path not init---" >> $tmp_delete_log   return   fi   inner_day_num=+7   if [[ -n ${in_day_num} ]] && [[ ${in_day_num} -ge 1 ]] ; then   ${inner_day_num}=${in_day_num}   fi   deleteLog ${inner_day_num}   }   main  3. 一些简单的shell脚本实例   2011-12-30 15:56:22|  分类: 脚本开发|举报|字号 订阅 下载LOFTER我的照片书  | 自己写了一下小的shell实例,虽然很小,但所有的大的程序都是由小的模块堆积起来的,程序员一定要懂得一种脚本的书写,而我,只会在linux下工作,所以就只能写linux的shell脚本了,呵呵,本文会陆续更新,给自己加油! 1.模拟linnux登录shell #/bin/bash echo -n "login:"  read name echo -n "password:" read passwd if [ $name = "cht" -a $passwd = "abc" ];then echo "the host and password is right!" else echo "input is error!" fi 2.比较两个数大小 #/bin/bash echo "please enter two number" read a read b if test $a -eq $b then echo "NO.1 = NO.2" elif test $a -gt $b then echo "NO.1 > NO.2" else echo "NO.1 < NO.2"  fi 3.查找/root/目录下是否存在该文件 #/bin/bash echo "enter a file name:" read a if test  -e /root/$a  then echo "the file is exist!" else echo "the file is not exist!" fi 4.for循环的使用 #/bin/bash clear for num in 1 2 3 4 5 6 7 8 9 10 do echo "$num" done 5.命令行输入 #/bin/bash echo "Please enter a user:" read a b=$(whoami) if test $a = $b then echo "the user is running." else echo "the user is not running." fi 6.删除当前目录下大小为0的文件 #/bin/bash for filename in `ls` do if test -d $filename then b=0 else     a=$(ls -l $filename | awk '{ print $5 }') if test $a -eq 0 then rm $filename fi fi       done 7.如果/export/um_lpp_source下有文件,那么将其文件系统大小改为3G #/bin/bash while line=`ls /export/um_lpp_source` do if test $line="" then  echo "NULL" sleep 1 else echo $line chfs -a size=3G /export/um_lpp_source exit 0 fi done 8.测试IP地址 #/bin/bash for i in  1 2 3 4 5 6 7 8 9  do echo "the number of $i computer is " ping -c 1 192.168.0.$i done 9.如果test.log的大小大于0,那么将/opt目录下的*.tar.gz文件 #/bin/sh a=2 while name="test.log" do sleep 1 b=$(ls -l $name | awk '{print $5}') if test $b -ge $a #then echo "OK" then `cp /opt/*.tar.gz .` exit 0 fi done 10.打印读取的内容,为下面的例子做准备 #/bin/bash while read name do echo $name done 11.从0.sh中读取内容并打印 #/bin/bash while read line do echo $line done < 0.sh 12.读取a.c中的内容并做加1运算 #/bin/bash test -e a.c while read line do a=$(($line+1)) done < a.c echo $a 13.普通无参数函数 #/bin/bash p () { echo "hello" } p 14.给函数传递参数 #/bin/bash p_num () { num=$1 echo $num } for n in $@ do p_num $n done 15.创建文件夹 #/bin/bash while : do echo "please input file's name:" read a if test -e /root/$a then echo "the file is existing Please input new file name:" else mkdir $a echo "you aye sussesful!" break  fi done 16.获取本机IP地址 #/bin/bash ifconfig | grep "inet addr:" | awk '{ print $2 }'| sed 's/addr://g' 17.查找最大文件 #/bin/bash a=0 for  name in *.* do b=$(ls -l $name | awk '{print $5}') if test $b -ge $a then a=$b namemax=$name fi done echo "the max file is $namemax"
/
本文档为【★shell运行脚本事例_download】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索