alamise

Website URL:

关于”running yum-complete-transaction first” 的提示信息

今天在用yum升级一台新机器时,顾客用ssh远程把server重新启动了。之后,在使用yum 时总是有提示信息:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.

意思是,有未完成的yum事务,建议先运行yum-complete-transaction命令清除。

处理步骤:

# 安装 yum-complete-transaction

yum install yum-utils

# 运行 yum-complete-transaction

yum-complete-transaction –cleanup-only

# 清除可能存在的重复包

package-cleanup –dupes

# 清除可能存在的损坏包

package-cleanup –problems

    按行数分割

    • June 5, 2013
    • Published in reaver

    有个文件要处理,因为很大,所以想把它切成若干份,每份N行,以便并行处理。怎么搞呢?查了下强大的shell,果然有现成的工具--split
    下面记录下基本用法:

     
    1. split [-bl] file [prefix]  


    参数说明:

    -b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m
    -l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。

    prefix:分割后产生的文件名前缀。

     

    示例:

    假设要切分的文件为test.2012-08-16_17,大小1.2M12081行。

    1)

     
    1. split -l 5000 test.2012-08-16_17  

    生成xaaxabxac三个文件。
    wc -l 看到三个文件行数如下:
    5000 xaa
    5000 xab
    2081 xac

    1. 总计

    2) 

    1. split -b 600k test.2012-08-16_17  

    生成xaaxab两个文件
    ls -lh 看到 两个文件大小如下:
    600K xaa

    1. xab

    3)

     
    1. split -b 500k test.2012-08-16_17 example  

    得到三个文件,文件名的前缀都是example
    ls -lh 看到文件信息如下:
    500K exampleaa
    500K exampleab
    154K exampleac

      File "/usr/lib/vmware-tools/install/vmware-open-vm-tools-xorg-drv-display/x-conf-rhel.py", line 6, in ?

       

      yum remove vmware-* -y
      rpm -e --noscripts vmware-open-vm-tools-xorg-drv-display.x86_64
      rpm -e --noscripts vmware-open-vm-tools-xorg-drv-mouse.x86_64

       

       

       

      Unable to create symbolic link "/usr/lib/vmware-tools/bin"

      or

      Unable to create symbolic link "/usr/lib/vmware-tools/libconf"

      Seems the installer has a bug where it fails to remove the existing directory before creating the symlink (it prompts to overwrite, but of course overwriting a dir with a symlink is not possible - therefore I'd call this a BUG)

      The solution is to simply remove the existing dirs:

      rm -rf /usr/lib/vmware-tools/libconf
      rm -rf /usr/lib/vmware-tools/bin

      and run the install again:

      ./vmware-install.pl -d

        ntpq -p输出含义


        位置

        标志

        含义

        remote之前

        *

        响应的NTP服务器和最精确的服务器

        +

        响应这个查询请求的NTP服务器

        blank(空格)

        没有响应的NTP服务器

        列表上方

        remote

        响应这个请求的NTP服务器的名称

        refid

        NTP服务器使用的更高一级服务器的名称

        st

        正在响应请求的NTP服务器的级别

        when

        上一次成功请求之后到现在的秒数

        poll

        本地和远程服务器多少时间进行一次同步,单位秒, 在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小

        reach

        用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加

        delay

        从本地机发送同步要求到ntp服务器的往返时间

        offset

        主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近

        jitter

        统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确

          awk实例操作学习记录

           

          awk '/^root/ { print }' /etc/passwd    打印以root开头的行

           


          awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。
          awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。
          例子:
          一般语法格式
          1.# awk '{ print }' /etc/passwd
          或# awk '{ print $0 }' /etc/passwd
          马上显示/etc/passwd的内容,其中$0变量表示整个当前行
          2.# awk '{ print "william" }' /etc/passwd
          或# awk '{ print "" }' /etc/passwd
          第一条按照/etc/passwd文件中的行数显示william,第二条则显示空行。
           
          字段
          3.# awk -F: '{ print $1 }' /etc/passwd
          或# awk -F: '{ print $1 $3 }' /etc/passwd
          第一条打印输入文件中每一行中出现的第一个字段,第二条则打印第一和第三字段。其中-F:表示指定“:”作为字段分隔符。
          4.# awk -F: '{ print $1 " " $3 }' /etc/passwd
          # awk -F: '{ print "username: "$1 "\t\tuid: " $3 }' /etc/passwd
          例3中输出的结果两个字段之间没有空格,这第一条命令就是加空格,第二条则加了文本标签。
           
          外部脚本
          5.# awk -f my.awk /etc/passwd
          如果要运行外部的脚本加上-f选项即可,其中my.awk是脚本,/etc/passwd是要操作的文本。
           
          BEGIN和END块
          6.BEGIN{
          FS=":"        相当于命令行中的-F:
          }
          { print $1 }
          END{
          print "william"
          }
          awk开始处理文件之前会执行BEGIN块,awk处理文件之后会执行END块。
           
          表达式和块
          7.# awk '/root/ { print }' /etc/passwd    打印包含root的行
          # awk '/^root/ { print }' /etc/passwd    打印以root开头的行
          # awk '/~root/ { print NR NF }' /etc/passwd    有以root结尾的行打印当前记录数和当前记录字段数
          # awk '/^root|wang/ { print }' /etc/passwd    打印以root或wang开头的行
          # awk '/^[rw]/ { print }' /etc/passwd    打印以字母r或w开头的行
          # awk '$1 ~/[0-9]/ { print }' /etc/passwd    打印字段1中以数字结尾的行
          # awk -F: '$4 ^/[0-9]/ { print }' /etc/passwd    打印字段4中以数字开头的行
          8.# awk -F: '$4==27 { print }' /etc/passwd    打印字段4等于27的行
          # awk -F: '$4!=27 || $3>492 { print }' /etc/passwd    打印字段4不等于27或字段3大于492的行
          # awk -F: '$4==27 || $3>42 { print $1+10 }' /etc/passwd    假如字段4等于27或者字段3大于42,打印$1+10的值,如果$1不是数字默认为0。
          # awk -F: '{print $4==27 ? "ok" : "err"}' /etc/passwd    字段4等于27打印ok,否则打印err
          # awk '/^root/,/^bin/' /etc/passwd    打印以root开头到以bin开头的所有行,假如出现第二个以root开头的行,则到下一个yibin开头的行结束或到文件结尾。
           
          条件语句
          9.BEGIN{
          FS=":"
          }
          {
          if($3==27){
                  if($4==27){
                  print "love"
                  }
          }
          else if($1 ~/root/) { print "one"}    //~是包含,^是不包含
          else {
                   print "others" " " $1}
          }
          END{
          print "william"
          }
           
          变量
          10.BEGIN   {x=0}
          /^$/ {x=x+1}
          END {print "There are "x" blank lines."}
          计算空白行的数量
          11.# awk -f my.awk x=8 ./test.c 
          原来是5,加入x=8后,结果变成了13.另外BEGIN   {x=0}可以不要。
          12.BEGIN   {x="0.01"}    //注意变成字符串了
          /^$/ {x=x+1}
          END {print "There are "x" blank lines."}
          执行# awk -f my.awk  ./test.c 结果是5.01
           
          字段分隔符
          前面设置FS=":",当然也可以设置多个任意字符为分隔符。
          例如:
          FS="\t+"    +号表示一个或多个
          FS="root[0-9][0-9]"    表示root后面接两个数字为分隔符
           
          记录分隔符
          NR 记录号 NS 记录分隔符 FS字段分隔符
          比如通讯录把名字 地址 电话号码整理为一个记录。其中文本如下
          wang
          Hunan Chenzhou
          123456
           
          li
          Guangzhou Zhuhai
          654321
          13.执行脚本为:BEGIN {
              FS="\n"
              RS=""
          }
          {print $1 ","$2","$3}
          输出:
          wang,Hunan Chenzhou,123456
          li,Guangzhou Zhuhai,654321
           
          14.执行脚本为:BEGIN   {
          FS="\n"
          RS=""
          OFS="-"    输出字段间隔
          ORS="\nnext:\n"    输出记录间隔
          }
          {print $1, $2, $3}
          输出:
          wang-Hunan Chenzhou-123456
          next:
          li-Guangzhou Zhuhai-654321
          next:
           
          循环语句
          15.BEGIN   {
          FS="\n"
          RS=""
          OFS="-"
          ORS=""
          }
          {
          x=1
          while(x<NF){
          print $x "\t"    上面的OFS赋值将不起作用
          x++
          }
          print $NF "\n"}
          此外有do while,for,break,continue。
           
          数组
          16.
          数组下标经常从1开始,而不是0
          数组下标字符串化 例如:myarr["name"]="wang" 就算不是字符串也会被看成字符串。
          17.delete myarr[1]     删除数组元素1
          18.if (wang in myarr) {print "ok"}     查看数组元素
           
          字符串函数
          string="Wo men shi ku bi de cheng xu yuan !"
          print string[2]     会报错!!
          怎么办?
          print length(string)    打印字符串长度
          print index(string,"men")    查找men在字符串中的位置
          print tolower(string)    转换为小写
          print toupper(string)    转换为大写
          mysbu=substr(string,startpos,maxlen)    在startpos开始截取maxlen这么长的字符
          print match(string,/men/),RSTART,RLENGTH    寻找匹配men的位子和长度
          sbu(old,new,string) 替换一个
          gsbu(old,new,string)    全部替换
          num=split("1,2,3,4,5,6",mynum,",")    切开字符串,并将各部分放到整数下标的数组中
           
          函数格式
          function 函数名(参数)
          {
              ……
          }

           

            可以连接网络 浏览器无法上网

            简单来说netsh winsock reset命令含义是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。

            winsock是windows网络编程接口,从Windows XP SP2开始内置了一条命令使用netsh能够对该接口进行修复。

            netsh是一个能够通过命令行操作几乎所有网络相关设置的接口。比如设置IP,DNS,网卡,无线网络等。
            netsh winsock reset:
            先进入netsh
            然后进入winsock这个部件
            对winsock这个部件执行reset命令。
            效果就是重置Winsock。对于一些WinSock被破坏导致的问题有奇效。在netsh出现之前,对于WinSock问题的修复是非常繁琐的。

              Remove duplicates line from files

              • May 30, 2013
              • Published in reaver

              perl -ne 'print unless $a{$_}++' file > out put file

               

               

              awk '{a[$1]} END {for(i in a) print i}' filename > out put file

               

              sort myfile.txt | uniq > out put file

               

               

              awk '!_[$0]++' file

               

               

              ruby -00 -ne 'puts $_.split("\n").uniq' file

               

               

              perl -ne 'print unless $a{$_}++' file

               

               

              sed '$!N; /^\(.*\)\n\1$/!P; D'

               

               

               

                使用UltraEdit处理超大文件

                • May 30, 2013
                • Published in reaver

                UE可以处理几乎任意大小的文件,当你想阅读GB级别的LOG文件时,UE时很好的选择。

                1.关闭行号显示

                关闭行号显示可以让你更快的打开一个大型文件。

                2.不使用临时文件

                不使用临时文件可以减少加载大型文件的时间。你可以设置阈值来合理使用这个功能。

                3.关闭文件检测和转换

                最后,关闭文件检测和转换功能,就能快捷的打开大型文件了。

                设置好以后,我们用一个4GB的文件来做测试。

                这是我们要打开的文件:

                用UE打开:

                 

                  Subscribe to this RSS feed
                  Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/user.php on line 145