注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

Linux常用命令分享(二)  

来自韩延玲   2016-07-01 10:41:10|  分类: Linux相关 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

hadoop命令

1.    限制hadoop-client的下载速度

hadoop-site.xml中增加

<property>

  <name>speed.limit.kb</name>

  <value>200</value>

  <description>unit is kb/s</description>

</property>

 

2.        使用hadoop下载文件到本地

Hadoop-client/bin/hadoop fs -get hadoop路径 本地路径

Hadoop路径:当本机挂载了hadoop后,可以使用相对路径。

 

3.        杀掉hadoop上的job:

hadoop-client/hadoop/bin/hadoop job -kill job_201205210222_257980

 

4.       hadoop distcp设置优先级
hadoop distcp -D mapred.job.priority=VERY_HIGH -su mc,mc hdfs://tc-dbuild-namenode.tc.baidu.com:54310/user/wdbd/working/mc/zh/data/db/dadu-new.old/${ii}/url.list.md5 /user/build/build-dadu-new.old/dbuild/flow/${ii}

编写脚本时常用的命令

1.        当需要共用的tmp文件时,使用$$

2.        去掉字符串中的后缀,如jp01-build-con0.jp01.baidu.com中的.baidu.com的方法:arg="${arg%.baidu.com}"

3.        test的用法

-z 测试字符串长度为0返回真,否则返回假

-n 测试字符串长度不为0返回真,否则返回假

-b file 如果文件为一个块特殊文件,则为真

-c file 如果文件为一个字符特殊文件,则为真

-d file 如果文件为一个目录,则为真

-e file 如果文件存在,则为真

-f file 如果文件为一个普通文件,则为真

-g file 如果设置了文件的 SGID 位,则为真

-G file 如果文件存在且归该组所有,则为真

-k file 如果设置了文件的粘着位,则为真

-O file 如果文件存在并且归该用户所有,则为真

-p file 如果文件为一个命名管道,则为真

-r file 如果文件可读,则为真

-s file 如果文件的长度不为零,则为真(-z用用来测试字符串是否为空的,空为真)

-S file 如果文件为一个套接字特殊文件,则为真

-t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真

-u file 如果设置了文件的 SUID 位,则为真

-w file 如果文件可写,则为真

-x file 如果文件可执行,则为真

4.        expr是使用格式 expr $1 - $2,符号两边必须有空格 expr后面也不能带括号;

5.        使用mail改发件人:mail -s "邮件主题" hanyanling@baidu.com -- -fhanyanling@baidu.com

6.        case的用法:

case $num in
1) echo "January";;
双分号结束
2) echo "Feburary";;
5) echo "may"
每个case可以有多条命令
echo "sdfd"
echo "sdf";;
但最后一条命令一定是双分号结束

*) echo "not correct input";; *)是其他值、default的意思
esac

7.        expect的使用:

#!/usr/bin/expect

set host [lindex $argv 0]

 

        spawn ssh $host "echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1WOFfy6Uc0PLBCgcygs8ubDG1BONIl9gVMs+oLMFcBZxuz4X8HhSbO7Cat7caJpLMvXFUxv8t5+wpe2s1rv0pydh3sJQbENIMtBKec2Gs3ZT8VTN9rw7wJrqzSLpOOV0lCNPVXeTrUqw+JLls3cyT' >/root/.ssh/authorized_keys"

        #spawn ssh $host "echo ok"

        expect "password:"

        send "xxxxxx"

        expect eof

 

expect有多个语句的情况:

 

if {$argc<2} {

        send_user "usage: $argv0 user@hostname \"cmd\" \n"

        exit 1

}

 

spawn ssh -n -o ConnectTimeout=3 [lindex $argv 0] "[lindex $argv 1]"

 

expect {

        "(yes/no)?" {send "yes\r";exp_continue;sleep 1}

        ".*assword:" {send "xxxxxx";exp_continue;sleep 1}

}

 

8.        脚本中日志的输出,可在开头写上:

exec 1>>scandisk.out

exec 2>>scandisk.err

set –x

9.        生成序列

seq 1 3 10    :从1开始,到10 间隔为3 结果是:1 4 7 10

10.    当要对生成的格式有位数要求时,使用:

printf "%03d\n" $(seq 30)或者seq -f  '%03g' 30

11.    多个数进行计算:xargs|tr ' ' '+'|bc

12.    如果出现以下错误:value too great for base,则是因为以0开头的都人为是8进制,所以需要进行强制转换:

            num=08; num=$((10#$num+0))

13.    使用bash两个循环同时进行

for (( expr1; expr2; expr3 )) 这种循环语法来实现。 比如

for (( i=1, j=7; i<5 && j >3; i++, j-- ))

do

    echo "i $i, j $j"

done

14.    Shell数组

BASE_MAC=( ma1 mac2 )

数组长度:echo ${#BASE_MAC[@]}

15.    得到一个程序的pid$!

  评论这张
 
阅读(214)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016