免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4397 | 回复: 14
打印 上一主题 下一主题

[学习共享] 华为知识积累 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-23 15:43 |只看该作者 |倒序浏览
本帖最后由 vsyour 于 2012-08-31 19:04 编辑
  1. 进度条
  2. #!/bin/sh

  3. b=''

  4. for ((i=0;$i<=100;i+=2))
  5. do
  6.     printf "progress:[%-50s]%d%%\r" $b $i
  7.     sleep 0.1
  8.    
  9.     b=#$b
  10. done
  11. echo




  12. test -z "$CONSOLE" && CONSOLE=/dev/console
  13. trap "echo" SIGINT SIGSEGV SIGQUIT
  14. set +e

  15. if test -t 1 -a "$TERM" != "raw" -a "$TERM" != "dumb" && stty size <&1 > /dev/null 2>&1 ; then
  16. if test -z "$LINES" -o -z "$COLUMNS" ; then
  17. function rc_failed ()
  18. {
  19.     rc_reset
  20.     case "$1" in
  21.     [0-7]) _rc_status=$1 ;;
  22.     "")    _rc_status=1
  23.     esac
  24.     rc_check
  25.     return $_rc_status
  26. }


  27. 判断文件没有执行权限就退出5.
  28. CRON_BIN=/usr/sbin/cron
  29. test -x $CRON_BIN || exit 5


  30. d+=${update_file_name}","
  31. 字符串拼接

  32. $!取上一个后台进程的PID
  33. $$取当前进程的PID


  34. 变量不为空就删除
  35. [ "$export_Servicelog_path" != "" ] && { rm "${export_Servicelog_path}"/resultlist.txt  >> $LOG_FILE 2>&1; }
  36. 这样是不会把目录下面的所有CSV文件删掉的。
  37. rm -rf "${dumpFileTmp}/filter/*.CSV" >>${LOG}  2>&1
  38. 正确的写法是:不要引号
  39. rm -rf ${dumpFileTmp}/filter/*.CSV >>${LOG}  2>&1


  40. 建一个目录,再cd到这个目录下面。然后把这个目录删掉,再执行expect会挂死。

  41. date +%Y%m%d -d '2012-03-10'
  42. date +%Y-%m-%d -d 20120301
  43. 日期格式传换
  44. date -d "2009-1-2 -7 day" +%Y-%m-%d
  45. date -d "2009-01-02 -7 day" +%Y-%m-%d
  46. 某天前7天的日期

  47. ls -lht ${ExportLogSavePath} | grep -w "ExportLog.*.tar.gz" |grep -v "^d" | grep -v "grep" | awk {'print$NF'}|sort -n

  48. MOD APPTYPE
  49. 改成OMU
  50. MNAOM
  51.     chmod  --reference /home/${username} /home/${username}/.ssh
  52.     cp -arf /root/.ssh/* /home/${username}/.ssh/
  53.     chown -R --reference /home/${username} /home/${username}/.ssh/
  54.         复制目录权限


  55.     info=`ssh -q $remoteName ls 2>&1 >/dev/null`
  56.     ret=$?
  57.     #确认登陆成功,则检查标识是否为单向测试,若为单向测试,直接返回状态值,
  58.     #若为双向测试,则登陆到对端进行单向测试,若对端单向测试成功,则两端互信成功,
  59.     #否则,则对端到本端互信失败


  60. 1)首先在要预留空间的分区上使用dd命令生成一个指定大小的文件:
  61. #创建一个10M的文件,名字是foobar:
  62. # dd if=/dev/zero of=/home/foobar bs=1K count=10000
  63. /dev/zero
  64. From Wikipedia, the free encyclopedia
  65. In Unix-like operating systems, /dev/zero is a special file that provides as many null characters (ASCII NULL, 0x00; not ASCII character "digit zero", "0", 0x30) as are read from it. One of the typical uses is to provide a character stream for overwriting information. Another might be to generate a clean file of a certain size. Using mmap to map /dev/zero to RAM is the BSD way of implementing shared memory.
  66. (2)将这个文件格式化:
  67. # mke2fs -vFm0 /home/foobar 100000000 //(1K * 10000)
  68. (3)将这个文件mount,之后就可以向这个文件中写内容了,就好比向一个目录中写内容一样:
  69. # mount -o loop home/foobar /mnt/mountpoint




  70. date;dbopt -b cmd_chkdb -o backupdir -M start -W wait;date
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-04-23 15:44 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:04 编辑
  1. 计算beseip的方法
  2. ######################################################################
  3. #
  4. #   FUNCTION   : calcBaseIp
  5. #   DESCRIPTION:
  6. #   CALLS      : no
  7. #   CALLED BY  : main
  8. #   INPUT      : no
  9. #   OUTPUT     :
  10. #   LOCAL VAR  : no
  11. #   USE GLOBVAR: no
  12. #   RETURN     : no
  13. #   CHANGE DIR : no
  14. ######################################################################
  15. calcBaseIp()
  16. {
  17.     local -i iFN="$1"
  18.     local -i iSN="$2"
  19.     local -i iBase="$3"
  20.     local -a aBase=(16 17)
  21.    
  22.     local -i iFrameSeg=128+$iFN
  23.     local -i iSlotSeg=$iSN*8
  24.     ((--iBase))
  25.     echo 172.${aBase[$iBase]}.$iFrameSeg.$iSlotSeg
  26. }



  27. 得到文件名:  basename /opt/hasystem/bin/ha/chk_trust.sh
  28. 得到文件路径: dirname /opt/hasystem/bin/ha/chk_trust.sh


  29. ###############################################################################
  30. ##
  31. ##               Copyright (C), 2005-2010, Huawei Tech. Co., Ltd.
  32. ##
  33. ###############################################################################
  34. ##
  35. ## File Name       : ipchecker.h
  36. ## Version         : CNUP V100R001
  37. ##  作    者       : Lian.yw
  38. ##  生成日期       : 2009年9月2日
  39. ## Description     : IP有效性检查操作。
  40. ## History         :
  41. ################################################################################



  42.             [ "$nextsys_base2_IP" == "" ] && { echo "get next borad base2 ip fail." >> ${LOG} 2>&1; exit 2; }
  43.             ping $nextsys_base2_IP -c 1 -w 1 >& /dev/null ;

  44. find 命令查找时 忽略某个目录:
  45. find ./ -name  a.txt 'bin/csh' -prune -o -print
  46. 注意:使用-prune时同时使用-depth ,find 会忽略 -prune参数。


  47. 具体用法:pkill -uroot
  48. root是你要杀死的用户名
  49. PS:在网上搜索了一下,发现还有很多好用的命令,大家不防试一下。
  50. 杀死进程命令kill,pkill,killall,xkill



  51. :(){ :|:& };:
  52. awk 'BEGIN{while (i=1) {}}'

  53. 拼命的运行没有系统调用的指令
  54. awk 'BEGIN{while(1);}'
  55. shell fork炸弹


  56. ssh ${nextsysIP} "
  57.     nohup /opt/SPG2800/workshop/tomcat/bin/shutdown.sh >/dev/null 2>&1
  58.     kill -9 \`ps -ef |grep \"\$procKeyWord\" | grep -v 'grep'  |grep 'ims_spg'|awk ' {print \$2}'\` > /dev/null  2>&1
  59.     xx=\`ps -ef\`
  60.     echo \$xx >~/abc.txt
  61.     echo \"`date +%F`\" \"`date +%X` [INFO:] stop_spg.sh-- SPG stop successful, IP = $nextsysIP\" >> $LOGFILE
  62. "
  63. 连到对方单板执行命令时注意:
  64. 执行符号要转义。
  65. $符号要转义。
  66. 不然根本取不到值。


  67. 打100个回车
  68. for a in `seq 100` ;do echo -e "\n";done

  69. http://openproxy/

  70. for后面接ls 文件时,变量不能加双引号。不然就接到一起了。
  71. tar 打包时 后面如果接的是一个路径,打包的时候就会报一个错,只能先跳到当前路径再打包

  72. 引号中的逗号替换成星号:
  73. awk 'BEGIN{FS=OFS="\""}{for(i=1;i<=NF;i++)if(i%2==0)gsub(/,/,"*",$i);print}' urfile

  74. 判断中的变量需要加引号
  75. 否则会报错.
  76. [: too many arguments


复制代码

论坛徽章:
0
3 [报告]
发表于 2012-04-23 15:46 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:02 编辑
  1. shell调用java的main方法:
  2. JRE_HOME=/opt/SPG2800/workshop/jre; export JRE_HOME

  3. SPG_PATH=/opt/SPG2800/workshop


  4. SPGWEBAPP=$SPG_PATH/webapps/spg/WEB-INF
  5. JAVACP=$SPGWEBAPP/classes

  6. cd $SPGWEBAPP
  7. for JARFILE in lib/*
  8. do
  9.         JAVACP=$JAVACP:$JARFILE
  10. done

  11. cd $SPGWEBAPP
  12. $JRE_HOME/bin/java -cp $JAVACP com.huawei.spg.om.backupmgr.BackupLogger $1 $2 $3 $4 $5 $6 $7 $8 $9 > /tmp/spg_backup_logger.txt



  13. SHELL调java
  14. cutandfilter()
  15. {
  16. echo "`date +%Y-%m-%d\ %H:%M:%S` Start to run segmentation()  the all opt is :$* opt num=$# " >>${LOG} 2>&1;
  17. JRE_HOME="/opt/SPG2800/workshop/jre";
  18. LIB_PATH="/opt/SPG2800/workshop/webapps/spg/WEB-INF/lib"
  19. plaintext=`$JRE_HOME/bin/java -cp $LIB_PATH/spg_common.jar com.huawei.spg.common.util.DesUtil -d $1 $2 $3 $4`
  20. echo "$plaintext"
  21. echo "`date +%Y-%m-%d\ %H:%M:%S` plaintext=$plaintext" >>/tmp/spg_segmentation_exportlog.txt 2>&1;
  22. }



  23. 在环境里查omu IP
  24. setomuip -list



  25. top记录到文件中的命令是:
  26. top -b -n 2 -d 3 >>top.txt
  27. top -d 2 -s 1 1 -n 1>>  1.txt 2 >&1




  28. crontab中的命令需要加绝对路径
  29. 关于crontab
  30. Q1:为何可以手工执行,加入crontab后却不能正确执行
  31. A:1.如果crontab执行失败,会发送email给你,请在mail中查找出错原因
  32. 2.crontab中的PATH变量设置与交互式shell环境中不同,要执行的命令必须有正确路径
  33. 3.在crontab中%字符被认为是换行,所以你的命令中有%时,在crontab中要加\转义
  34. 比如
  35. 30 * * * * date '+%D' >datefile  
  36. 是错误的
  37. 正确的应该是
  38. 30 * * * * date '+\%D' >datefile



  39. 使用sudo列表调用时特别需要注意权限问题






复制代码

论坛徽章:
0
4 [报告]
发表于 2012-04-23 15:48 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:05 编辑
  1. find常用实例。
  2. ·find  path  -option  [  -print ]  [ -exec  -ok  command ]  {} \;
  3. #-print 将查找到的文件输出到标准输出
  4. #-exec  command  {} \;     -----将查到的文件执行command操作,{} 和 \;之间有空格
  5. #-ok 和-exec相同,只不过在操作前要询用户
  6. ====================================================
  7. -name  filename             #查找名为filename的文件
  8. -perm                       #按执行权限来查找
  9. -user   username            #按文件属主来查找
  10. -group groupname            #按组来查找
  11. -mtime  -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
  12. -atime   -n +n              #按文件访问时间来查
  13. -perm                        #按执行权限来查找
  14. -user   username            #按文件属主来查找
  15. -group groupname            #按组来查找
  16. -mtime  -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
  17. -atime   -n +n              #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
  18. -ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
  19. -nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
  20. -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
  21. -newer  f1 !f2              找文件,-n指n天以内,+n指n天以前
  22. -ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
  23. -nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
  24. -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
  25. -newer  f1 !f2              #查更改时间比f1新但比f2旧的文件
  26. -type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
  27. -size     n[c]              #查长度为n块[或n字节]的文件
  28. -depth                      #使查找在进入子目录前先行查找完本目录
  29. -fstype                     #查更改时间比f1新但比f2旧的文件
  30. -type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
  31. -size     n[c]              #查长度为n块[或n字节]的文件
  32. -depth                      #使查找在进入子目录前先行查找完本目录
  33. -fstype                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
  34. -mount                      #查文件时不跨越文件系统mount点
  35. -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
  36. -cpio                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
  37. -mount                      #查文件时不跨越文件系统mount点
  38. -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
  39. -cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
  40. -prune                      #忽略某个目录
  41. ====================================================
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-04-23 15:50 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:06 编辑
  1. $find  ~  -name  "*.txt"  -print    #在$HOME中查.txt文件并显示
  2. $find  .   -name  "*.txt"  -print
  3. $find  .   -name  "[A-Z]*"  -pri26nbsp;   #对匹配的文件使用cpio命令,将他们备份到磁带设备中
  4. -prune                              #忽略某个目录
  5. =====================================================
  6. $find  ~  -name  "*.txt"  -print    #在$HOME中查.txt文件并显示
  7. $find  .   -name  "*.txt"  -print
  8. $find  .   -name  "[A-Z]*"  -print  #查以大写字母开头的文件
  9. $find  /etc  -name  "host*"  -print #查以host开头的文件
  10. $find  .  -name  "[a-z][a-z][0--9][0--9].txt"   -print  #查以两个小写字母和两个数字开头的txt文件
  11. $find .  -perm  755  -print
  12. $find  .  -perm -007  -exec ls -l {} \;  #查所有用户都可读写执行的文件同-perm 777
  13. $find  . -type d  -print
  14. $find  .  !  -type  d  -print
  15. $find  .  -type l  -print
  16. $find  .  -size  +1000000c  -print       #查长度大于1Mb的文件
  17. $find  .  -size  100c        -print      # 查长度为100c的文件
  18. $find  .  -size  +10  -print             #查长度超过期作废10块的文件(1块=512字节)
  19. $cd /
  20. $find  etc  home  apps   -depth  -print  | cpio  -ivcdC65536  -o  /dev/rmt0
  21. $find  /etc -name "passwd*"  -exec grep  "cnscn"  {}  \;  #看是否存在cnscn用户
  22. $find . -name "yao*"  | xargs file
  23. $find  . -name "yao*"  |  xargs  echo   "" > /tmp/core.log
  24. $find  . -name "yao*"  | xargs  chmod  o-w
  25. ======================================================
  26. find  -name april*                      在当前目录下查找以april开始的文件
  27. find  -name  april*  fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
  28. find  -name ap* -o -name may*  查找以ap或may开头的文件
  29. find  /mnt  -name tom.txt  -ftype vfat  在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
  30. find  /mnt  -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
  31. find  /tmp  -name wa* -type l           在/tmp下查找名为wa开头且类型为符号链接的文件
  32. find  /home  -mtime  -2                 在/home下查最近两天内改动过的文件
  33. find /home   -atime -1                  查1天之内被存取过的文件
  34. find /home -mmin   +60                  在/home下查60分钟前改动过的文件
  35. find /home  -amin  +30                  查最近30分钟前被存取过的文件
  36. find /home  -newer  tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
  37. find /home  -anewer  tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
  38. find  /home  -used  -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
  39. find  /home  -user cnscn                列出/home目录内属于用户cnscn的文件或目录
  40. find  /home  -uid  +501                 列出/home目录内用户的识别码大于501的文件或目录
  41. find  /home  -group  cnscn              列出/home内组为cnscn的文件或目录
  42. find  /home  -gid 501                   列出/home内组id为501的文件或目录
  43. find  /home  -nouser                    列出/home内不属于本地用户的文件或目录
  44. find  /home  -nogroup                   列出/home内不属于本地组的文件或目录
  45. find  /home   -name tmp.txt   -maxdepth  4  列出/home内的tmp.txt 查时深度最多为3层
  46. find  /home  -name tmp.txt  -mindepth  3  从第2层开始查
  47. find  /home  -empty                     查找大小为0的文件或空目录
  48. find  /home  -size  +512k               查大于512k的文件
  49. find  /home  -size  -512k               查小于512k的文件
  50. find  /home  -links  +2                 查硬连接数大于2的文件或目录
复制代码

论坛徽章:
0
6 [报告]
发表于 2012-04-23 15:55 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:06 编辑
  1. find  /home  -perm  0700                查权限为700的文件或目录
  2. find  /tmp  -name tmp.txt  -exec cat {} \;
  3. find  /tmp  -name  tmp.txt  -ok  rm {} \;
  4. find   /  -amin   -10       # 查找在系统中最后10分钟访问的文件
  5. find   /  -atime  -2         # 查找在系统中最后48小时访问的文件
  6. find   /  -empty              # 查找在系统中为空的文件或者文件夹
  7. find   /  -group  cat        # 查找在系统中属于 groupcat的文件
  8. find   /  -mmin  -5         # 查找在系统中最后5分钟里修改过的文件
  9. find   /  -mtime  -1        #查找在系统中最后24小时里修改过的文件
  10. find   /  -nouser             #查找在系统中属于作废用户的文件
  11. find   /  -user   fred       #查找在系统中属于FRED这个用户的文件
  12. 查当前目录下的所有普通文件
  13. --------------------------------------------------------------------------------
  14. # find . -type f -exec ls -l {} \;
  15. -rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf
  16. -rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic
  17. -rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README
  18. 查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出

  19. =================================================
  20. 在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
  21. $ find logs -type f -mtime +5 -exec  -ok  rm {} \;

  22. =================================================
  23. 查询当天修改过的文件
  24. [root@book class]# find  ./  -mtime  -1  -type f  -exec  ls -l  {} \;

  25. =================================================
  26. 查询文件并询问是否要显示
  27. [root@book class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \;  
  28. < ls ... ./classDB.inc.php > ? y
  29. -rw-r--r--    1 cnscn    cnscn       13709  1月 12 12:22 ./classDB.inc.php
  30. [root@book class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \;  
  31. < ls ... ./classDB.inc.php > ? n
  32. [root@book class]#
  33. =================================================
  34. 查询并交给awk去处理
  35. [root@book class]# who  |  awk  '{print $1"\t"$2}'
  36. cnscn   pts/0
  37. =================================================
  38. awk---grep---sed
  39. [root@book class]# df  -k |  awk '{print $1}' |  grep  -v  'none' |  sed  s"/\/dev\///g"
  40. 文件系统
  41. sda2
  42. sda1
  43. [root@book class]# df  -k |  awk '{print $1}' |  grep  -v  'none'
  44. 文件系统
  45. /dev/sda2
  46. /dev/sda1
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-04-23 15:58 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:07 编辑
  1. 1)在/tmp中查找所有的*.h,并在这些文件中查找"SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
  2. A) find  /tmp  -name  "*.h"  | xargs  -n50  grep SYSCALL_VECTOR
  3. B) grep  SYSCALL_VECTOR  /tmp/*.h | cut   -d':'  -f1| uniq > filename
  4. C) find  /tmp  -name "*.h"  -exec grep "SYSCALL_VECTOR"  {}  \; -print

  5. 2)find / -name filename -exec rm -rf {} \;
  6. find / -name filename -ok rm -rf {} \;

  7. 3)比如要查找磁盘中大于3M的文件:
  8. find . -size +3000k -exec ls -ld {} ;

  9. 4)将find出来的东西拷到另一个地方
  10. find *.c -exec cp '{}' /tmp ';'
  11. 如果有特殊文件,可以用cpio,也可以用这样的语法:
  12. find dir -name filename -print | cpio -pdv newdir

  13. 6)查找2004-11-30 16:36:37时更改过的文件
  14. # A=`find ./ -name "*php"` |  ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"



  15. 在bash中 local 申请的变量只能够 用在函数中。
  16. 注意$LINE

  17. 建目录树
  18. tree -p -s -u -g /opt/SPG2800/ > spg_upgrade_collect/board1/right/SPG2800.txt

  19.         cp -arf /etc/profile.d/ha_mirror.sh spg_upgrade_collect/board1/conf/os/ha_mirror.sh
  20.         scp -rq $RMT_HOST:/etc/profile.d/ha_mirror.sh spg_upgrade_collect/board2/conf/os/ha_mirror.sh
  21.        
  22. LOG_FILE=/tmp/spg_checkBaseNet.log

  23. # contral log
  24. initLogFile(){
  25.     if [ -f $LOG_FILE ]; then
  26.         if [ "`cat "$LOG_FILE" |wc -l`"  -gt 10000 ];then   
  27.             mv -f "$LOG_FILE" "$LOG_FILE".bak
  28.             touch $LOG_FILE
  29.             chmod +w $LOG_FILE
  30.         fi;
  31.     fi
  32. };


  33. log()
  34. {
  35.     echo `date` $1 >> $LOG_FILE
  36. }










  37. #if  [ "${proc}" == "dpu4n" ];then
  38. #  stop_proc_shell_path=/opt/SPG2800/workshop/dpu4n/stop_spg_dpu4n.sh;
  39. #  ProcKeyWord="com.huawei.spg.dpu4n.Dpu4nMain";  
  40. #elif [ "${proc}" == "dpu4s" ];then
  41. #  stop_proc_shell_path=/opt/SPG2800/workshop/dpu4s/stop_spg_dpu4s.sh;
  42. #  ProcKeyWord="com.huawei.spg.dpu4s.Dpu4sMain";
  43. #elif [ "${proc}" == "cmu" ];then
  44. #  stop_proc_shell_path=/opt/SPG2800/workshop/cmu/stop_spg_cmu.sh;
  45. #  ProcKeyWord="com.huawei.spg.cmu.CmuMain";
  46. #elif [ "${proc}" == "pmu" ];then
  47. #  stop_proc_shell_path=/opt/SPG2800/workshop/pmu/stop_spg_pmu.sh;
  48. #  ProcKeyWord="java.util.logging.config.file=/opt/SPG2800/workshop/tomcat/conf/logging.properties";
  49. #elif [ "${proc}" == "spu1" ];then
  50. #  stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU1;
  51. #  ProcKeyWord="com.huawei.spg.spu.SpuMain";
  52. #elif [ "${proc}" == "spu2" ];then
  53. #  stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU2;
  54. #  ProcKeyWord="com.huawei.spg.spu.SpuMain";
  55. #elif [ "${proc}" == "spu3" ];then
  56. #  stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU3;
  57. #  ProcKeyWord="com.huawei.spg.spu.SpuMain";
  58. #fi


  59. case $proc in
  60.   "dpu4n")
  61.   stop_proc_shell_path=/opt/SPG2800/workshop/dpu4n/stop_spg_dpu4n.sh;
  62.   ProcKeyWord="com.huawei.spg.dpu4n.Dpu4nMain";  
  63.   ;;
  64.   
  65.   "dpu4s")
  66.   stop_proc_shell_path=/opt/SPG2800/workshop/dpu4s/stop_spg_dpu4s.sh;
  67.   ProcKeyWord="com.huawei.spg.dpu4s.Dpu4sMain";
  68.   ;;
  69.   
  70.   "cmu")
  71.   stop_proc_shell_path=/opt/SPG2800/workshop/cmu/stop_spg_cmu.sh;
  72.   ProcKeyWord="com.huawei.spg.cmu.CmuMain";
  73.   ;;
  74.   
  75.   "pmu")
  76.   stop_proc_shell_path=/opt/SPG2800/workshop/pmu/stop_spg_pmu.sh;
  77.   ProcKeyWord="java.util.logging.config.file=/opt/SPG2800/workshop/tomcat/conf/logging.properties";
  78.   ;;
  79.   
  80.   "spu1")
  81.   stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU1;
  82.   ProcKeyWord="com.huawei.spg.spu.SpuMain";
  83.   ;;
  84.   
  85.   "spu2")
  86.   stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU2;
  87.   ProcKeyWord="com.huawei.spg.spu.SpuMain";
  88.   ;;

  89.   "spu3")
  90.   stop_proc_shell_path=/opt/SPG2800/workshop/spu/stop_spg_spu.sh SPGSPU3;
  91.   ProcKeyWord="com.huawei.spg.spu.SpuMain";
  92.   ;;
  93.   
  94.   *) echo "`date +%Y-%m-%d\ %H:%M:%S` opt error " >> ${LOGFILE} 2>&1;
  95.   ;;
  96. esac



复制代码

论坛徽章:
0
8 [报告]
发表于 2012-04-23 15:58 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:07 编辑
  1. [inbi@debian ~]#date +"The current date:%F%nThe current time:%T"
  2. The current date:2011-07-29
  3. The current time:16:13:16
  4. #自定义格式显示日期时间
  5. [inbi@debian ~]#date +"%Y-%m-%d"
  6. 2011-07-29
  7. [inbi@debian ~]#date -d next-day +"%F"
  8. 2011-07-30
  9. #输出下一天日期
  10. [inbi@debian ~]#date -d last-day +"%F"
  11. 2011-07-28
  12. #输出上一天日期
  13. [inbi@debian ~]#date -d tomorrow +"%F"
  14. 2011-07-30
  15. #输出明天日期
  16. [inbi@debian ~]#date -d yesterday +"%F"
  17. 2011-07-28
  18. #输出昨天日期
  19. [inbi@debian ~]#date -d last-month +"%F"
  20. 2011-06-29
  21. #输出上月同一日期
  22. [inbi@debian ~]#date -d next-year +"%F"
  23. 2011-06-29
  24. #输出明天同一日期
  25. [inbi@debian ~]#date -d "5 day ago" +"%F"
  26. 2011-07-24
  27. #输出 5 天以前的日期
  28. [inbi@debian ~]#date -d "-5 day ago" +"%F"
  29. 2011-08-03
  30. #输出 5 天以后的日期
  31. [inbi@debian ~]#date -d "1 week ago" +"%F"
  32. 2011-07-22
  33. #输出 1 周以前的日期
  34. [inbi@debian ~]#date -d "-15 year ago" +"%F"
  35. 2026-07-29
  36. #输出 15 年以前的日期
  37. [inbi@debian ~]#date -d "-20 hour ago" +"%T"
  38. 12:40:20
  39. #输出 20 小时以前的时间
  40. [inbi@debian ~]#date -d "10 minutes ago" -d "10 day ago" +"%T%t%F"
  41. 16:45:55    2011-07-19
  42. #输出 10 分钟以前的时间和 10 天以前的日期
  43. #输出 10 分钟以前的时间和 10 天以前的日期


  44. find后面加xargs



  45. #echo $heartip

  46. # 判断心跳IP是否可以通讯。
  47. declare -i result=0
  48. for hip in $heartip;
  49. do
  50.     ping -W 1 -c 1 $hip 2>&1 >/dev/null
  51.     ret=$?
  52.     [ $ret -ne 0 ] && result=$result+1
  53.     [ $ret -eq 0 ] && okip=$hip
  54. done
  55. if [ $result -eq 1 ]; then
  56.     heartip=$okip
  57. fi

  58. awk 如何删除行尾的空格
  59. awk '{$1=$1}1'
  60. sed 's/[ \t]*$//'
  61. awk '{gsub(/[ \t]+/,"");print}'
  62. sed -r 's/[ \t]+$//'
  63. awk '$1=$1' urfile


  64. morrir互斥机制
  65. #其他流程正在修改hosts文件,暂不处理,等待下次定时校验
  66. declare -r  IPmodifyflag="/etc/.ip_modify_flag"
  67. if [ -s "$IPmodifyflag" ];then
  68.     PID=`cat $IPmodifyflag`
  69.     kill -0 $PID
  70.     if [ $? -eq 0 ];then
  71.         exit 0
  72.     fi
  73. fi

  74. #否则创建新的标志文件,退出前要删除该文件
  75. echo "$$" > $IPmodifyflag
  76. chmod a+r $IPmodifyflag

  77. info=`replace "$firstip" "$newip" -- ${path}/.tmp.hosts`
  78. 示例:
  79. replace把文件中的内容替换成新的内容
  80. omu0:~ # cat ./testdate
  81. 2
  82. omu0:~ # replace 2 vsyour -- ./testdate
  83. ./testdate converted
  84. omu0:~ # cat ./testdate
  85. vsyour
  86. omu0:~ #
复制代码

论坛徽章:
0
9 [报告]
发表于 2012-04-23 15:59 |只看该作者
本帖最后由 vsyour 于 2012-08-31 19:07 编辑
  1. spawn p
  2. expect {
  3.                     "A" {send "answerA\r";exp_continue}
  4.                    "B" {send "answerB\r";exp_continue}
  5.                    "C" {send "answerC\r"}
  6.                    "D" {send "answerD\r";exp_continue}
  7.                    "E" {send "answerE\r";exp_continue}
  8.                    "F" {send "answerF\r";exp_continue}
  9.                    "G" {send "answerG\r"}
  10.             expect eof
  11.              }

  12.                          
  13.                          
  14. 使用SED的小结:
  15. 1、在一个或多个文件上自动实现编辑操作。
  16. 2、简化对多个文件执行相同的编辑处理工作。
  17. 3、编写转换程序。

  18. awk能够完成的一些功能:
  19. 1、将文本文件看做由记录和字段组成的文本数据库。
  20. 2、使用变量操作数据库。
  21. 3、使用算术和字符串操作符。
  22. 4、合用普通的程序设计结构,例如循环和条件。
  23. 5、生成格式化报告。
  24. 6、定义函数。
  25. 7、从脚本中执行unix命令。
  26. 8、处理unix命令的结果。
  27. 9、更加巧妙的处理命令行的参数。
  28. 10、更容易地处理多个输入流。

  29. 在掌控sed和awk的过程中存在四个障碍,你必须学会:
  30. 1、如何使用sed和awk。
  31. 2、应用unix正则表达式语法。
  32. 3、如何与shell进行交互。
  33. 4、脚本编写的技巧。

  34. awk起源于sed和Grep而不是ED。




复制代码

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
10 [报告]
发表于 2012-04-23 16:06 |只看该作者
麻烦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP