存档

文章标签 ‘linux’

awk简明使用

2018年9月12日 没有评论

完整结构:
“`
awk -F”,” ‘BEGIN{sum1=0;sum2=0;sum3=0};{if($3==100 && NR=265){sum1+=$263;sum2+=$264;sum3+=265} fi};END{print sum1,sum2,sum3}’ file_path
“`

格式化后的样子,\是shell中多行脚本的换行,便于和其他语言的逻辑做对比:
“`
# 定义字段分隔符
awk -F”,” ‘ \
#循环开始前的操作
BEGIN{sum1=0;sum2=0;sum3=0}; \
{\
# 遍历日志每行内容进行操作
if($3==100 && NR=265)\
{\
sum1+=$263;\
sum2+=$264;\
sum3+=265\
}\
fi\
};\
#循环结束后输出几个和
END{print sum1,sum2,sum3}\
‘ file_path

“`

其中很多时候BEGIN{}和END{}因为没有实际操作是可以省略
注意:
一般使用完整写法,这样脚本结构相对清晰,容易理解
BEGIN{初始化部分设置}
{遍历每行时的处理逻辑}
END{结束时的输出,以前会输出求和的值}

另外awk的变量,是没有$符号前缀的,注意
只有分割的列会用$1,$2,$3这样的来表示
每个处理语句之间用;分割

awk常用内部变量
NR
NF

参考:

https://jackxiang.com/post/1874/
https://my.oschina.net/wolx/blog/351601
https://blog.csdn.net/xiyangyang052/article/details/45462505

分类: linux 标签: , ,

hive中group by 提示Expression Not In Group By Key的解决办法

2014年3月5日 没有评论

hive中group by的时候

select col_1,col_2 from table_name group by col_1;

会提示:

FAILED: SemanticException [Error 10025]: Line 1:12 Expression not in GROUP BY key ‘col_2’

这里网上查了下,有两种解决方法:

1、不关心col_2的值,且有多个col_2,那么语句改成

select col_1, collect_set( col_2 )[0] from table_name group by col_1;

2、如果每个col_2的值不同且关心col_2的值,那么可以改成

select col_1,col_2 from table_name group by col_1,col_2;

http://one-line-it.blogspot.com/2012/11/hive-expression-not-in-group-by-key.html

Technorati : , ,
Del.icio.us : , ,
Zooomr : , ,
Flickr : , ,

分类: linux, 技术 标签: , ,

hive分隔符替换

2014年3月5日 没有评论

最近在使用hive,计算某些数据结果,但是hive输出的结果的分隔符很奇怪

总表面上看,好像是tab键,\t,结果用sed替换\t,替换不成功

后来网上查了资料,这里hive的分隔符是\001,但是sed ‘s/\001/,/g’,这样还是不行

后来网上看了下说这个符号是ctrl+v 和ctrl+I的组合键的结果

后来尝试了下sed ‘s/ /,/g’,结果就OK了、。、、

perl里面也可以这样替换

在python中可以使用line.split(‘\x01’)来进行切分(未验证)

参考文档:

http://blog.csdn.net/zyy160alex5/article/details/9171643

http://scn.sap.com/thread/3369277

Del.icio.us : , ,
Zooomr : , ,
Flickr : , ,
Technorati : , ,

分类: 技术 标签: , ,

putty之命令行工具

2013年1月29日 1 条评论

win下通过ssh连接服务器,win下没得linux下那么好的自带的ssh、scp等工具,今天在网上查找得知,putty自带一些命令行工具:

plink
pscp
psftp

分别是远程登录工具,scp工具,sftp工具

plink -xxx.xxx.xxx.xxx -l username -i c:\id_rsa.ppk xxx

当然也可以纯粹的登陆的

一般用证书的话,要用putty格式的证书

如,要用证书登录的话,就要用

参考:

http://www.eifr.com/article.php?id=854&act=print

http://www.cnblogs.com/tippoint/archive/2010/09/21/1832639.html

分类: 杂七杂八 标签: ,

conky配置文件

2012年12月2日 没有评论

conky是linux下一个可定制化程度很高的系统监视工具,这里有我用的一个简单的配置文件

内容放在用户根目录下的.conkyrc中。要用到的第三方工具:hddtmp,sensors,获取硬盘和cpu的温度.

阅读全文…

分类: linux 标签:

ubuntu 12.10 mac os 化

2012年12月2日 没有评论

突然喜欢上了mac os 的视觉效果,但是又没有米玩apple的东西,黑苹果又不是很爽,只能玩玩linux,装上了ubuntu,觉得太难看,网上查了查,有类mac的美化,就自己试了试:

wget https://launchpad.net/ubuntu-tweak/0.8.x/0.8.2/+download/ubuntu-tweak_0.8.2-1~precise1_all.deb #安装ubuntu tweak

sudo add-apt-repository ppa:noobslab/themes #添加到仓库

sudo apt-get update #更新软件列表

sudo apt-get install mac-os-lion-cursors #安装鼠标主题

sudo apt-get install mac-os-lion-icons #安装图标主题

sudo apt-get install mac-os-lion-theme #安装GTK/窗口主题

或者

apt-get install -y mac-os-lion-icons mac-os-lion-cursors mac-os-lion-cursors-v2 mac-os-lion-icons-v2 mac-os-x-theme mac-os-x-icons

然后到

系统设置里面打开ubuntu tweak,选择调整–主题,将主题都设置成max-os开头的,然后你就可以看到,变成mac风格了!!!

接下来,安装Grub Customizer,美化grub启动菜单:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

安装好了之后打开grub-customizer,选择外观设置,然后给grub设置一个apple风格的背景图片,然后启动菜单的字体颜色什么的调一下,ubuntu默认的那个紫色啥的太难看了。

另外,还可以通过mac4lin,或者macubuntu,但是都多少有些更新滞后,多有不能完美运行,所以先就这样简单的美化下。

 

参考:

http://tech.chinabyte.com/thread-524022-1-1.html

http://www.linuxidc.com/Linux/2011-05/35606.htm

分类: linux 标签:

redhat el6.3换centos源

2012年9月24日 没有评论

yum安装软件提示:

Loaded plugins: amazon-id, product-id, rhui-lb, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity

网上找了下发现是因为没有购买红帽key,不能使用官方的源。。。
所以,替换

删除redhat原有的yum源

# rpm -aq|grep yum|xargs rpm -e –nodeps

wget http://mirrors.163.com/centos/6.3/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6.3/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://mirrors.163.com/centos/6.3/os/i386/Packages/yum-3.2.29-30.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6.3/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

# rpm -ivh  python-iniparse-0.3.1-2.1.el6.noarch.rpm
# rpm -ivh  yum-metadata-parser-1.1.2-16.el6.i686.rpm
# rpm -ivh  yum-3.2.29-30.el6.centos.noarch.rpm  yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

最后两个包一起安装,因为会互相依赖。。寒安装这个会提示需要另外一个,反之亦然。。。

阅读全文…

分类: linux 标签:

转:df与du命令区别解析

2012年9月17日 没有评论

1、正常情况下,df和du输出结果都会有差距。

df du
du -sh命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;
而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。
du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。

因此正常情况下,df计算的USED空间会比du计算的结果要稍大。

阅读全文…

分类: linux 标签:

转:关于Linux系统清理/tmp/文件夹,你可能想知道的

2012年9月17日 没有评论

我们知道,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能大家知识的就不多了,所以,今天我们就来剖析一个这两个问题。

在RHEL\CentOS\Fedora\系统中(本次实验是在RHEL6中进行的)

先来看看tmpwatch这个命令,他的作用就是删除一段时间内不使用的文件(removes files which haven’t been accessed for a period of time)。具体的用法就不多说了,有兴趣的自行研究。我们主要看看和这个命令相关的计划任务文件。
他就是/etc/cron.daily/tmpwatch,我们可以看一下这个文件里面的内容

阅读全文…

分类: linux 标签:

自己写的使用SNMP协议的Linux、Windows服务器巡检脚本

2012年8月17日 没有评论

手头管理的机器越来越多,领导要求每天定时巡检,还要做报表,cacti之类的明显不合适。有次偷懒,结果出了问题没及时发现,还被训了。

但是每天人工手动去检查服务器,明显不符合我这样的偷懒的人的性格,所以我还是的想偷懒的办法。

先观察下这些机器,Linux,ubunt的发行版;windows 的,2003的。

由于最近用了shellscript,觉得还好,刚好最近又看了篇人家写的用snmo监控aix的脚本,所以这里也学人家通过snmp协议来做监控脚本

需要的工具:snmp相关的,然后被监控的各个机器上安装snmp服务,这里就不一一说开了。还用到的有awksed,sendEmail等各种命令。

整个脚本成型耗时有2个多月时间了吧,期间查找了不少snmp相关的资料和shell脚本和命令的一些用法,也问过很多同行网友。这个就脚本在命令行输出表格式的现实,然后还邮件发送一个html的表格,要报表到时候直接打出来签个字就OK了。方便快捷,正适合我等懒人。后来用这个脚本我着实的偷了很多懒了。这个脚本还有很多改进余地:比如后台循环执行,有故障就邮件报警,html报表可以用盐水来表示等级,正常、有风险、有故障等,有兴趣的可以去改进下。由于防止脚本的服务器故障,导致完整的带html报表的脚本丢失,这里是最后的一个算是功能完整的脚本。

阅读全文…