首页 文章 精选 留言 我的

精选列表

搜索[shell],共7516篇文章
优秀的个人博客,低调大师

shell脚本:查看KVM虚拟机中的网卡信息

# Author:丁丁历险(Jacob) # 该脚本使用guestmount工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中 # Centos7.2中安装libguestfs-tools-c可以获得guestmount工具 # 虚拟机可以启动或者不启动都不影响该脚本的使用 # 将虚拟机磁盘文件挂载到文件系统后,就可以直接读取磁盘文件中的网卡配置文件中的数据该脚本使用guestmount工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中 #!/bin/bash #Author:丁丁历险(Jacob) #该脚本使用guestmount工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中 #Centos7.2中安装libguestfs-tools-c可以获得guestmount工具 #虚拟机可以启动或者不启动都不影响该脚本的使用 #将虚拟机磁盘文件挂载到文件系统后,就可以直接读取磁盘文件中的网卡配置文件中的数据 clear mountpoint= "/media/virtimage" [!-d$mountpoint]&& mkdir $mountpoint read -p "输入虚拟机名称:" name echo "请稍后..." #如果有设备挂载到该挂载点,则先umount卸载 if mount | grep -q "$mountpoint" ; then umount $mountpoint fi #只读的方式,将虚拟机的磁盘文件挂载到特定的目录下,这里是/media/virtimage目录 guestmount-r-d$name-i$mountpoint echo echo "--------------------------------------------" echo -e "\033[32m$name虚拟机中网卡列表如下:\033[0m" dev=$( ls /media/virtimage/etc/sysconfig/network-scripts/ifcfg- *| awk -F "[/-]" '{print$9}' ) echo $dev echo "--------------------------------------------" echo echo echo "+++++++++++++++++++++++++++++++++++++++++++" echo -e "\033[32m网卡IP地址信息如下:\033[0m" for i in $dev do echo -n "$i:" grep -q "IPADDR" /media/virtimage/etc/sysconfig/network-scripts/ifcfg- $i|| echo "未配置IP地址" awk -F= '/IPADDR/{print$2}' /media/virtimage/etc/sysconfig/network-scripts/ifcfg- $i done echo "+++++++++++++++++++++++++++++++++++++++++++"

优秀的个人博客,低调大师

hbase之python利用thrift操作hbase数据和shell操作

前沿: 以前都是用mongodb的,但是量大了,mongodb显得不那么靠谱,改成hbase撑起一个量级。 HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的,分布式的,多版本的,面向列的存储模型。它存储的是松散型数据。 HBase提供了丰富的访问接口。 HBase ShellJava clietn APIJython、Groovy DSL、ScalaRESTThrift(Ruby、Python、Perl、C++…)MapReduceHive/Pig hbase(main):001:0> #创建表 hbase(main):002:0* create 'blog','info','content' 0 row(s) in 2.0290 seconds #查看表 hbase(main):003:0> list TABLE blog test_standalone 2 row(s) in 0.0270 seconds #增添数据 hbase(main):004:0> put 'blog','1','info:editor','liudehua' 0 row(s) in 0.1340 seconds hbase(main):005:0> put 'blog','1','info:address','bj' 0 row(s) in 0.0070 seconds hbase(main):006:0> put 'blog','1','content:header','this is header' 0 row(s) in 0.0070 seconds hbase(main):007:0> hbase(main):008:0* hbase(main):009:0* get 'blog','1' COLUMN CELL content:header timestamp=1407464302384, value=this is header info:address timestamp=1407464281942, value=bj info:editor timestamp=1407464270098, value=liudehua 3 row(s) in 0.0360 seconds hbase(main):010:0> get 'blog','1','info' COLUMN CELL info:address timestamp=1407464281942, value=bj info:editor timestamp=1407464270098, value=liudehua 2 row(s) in 0.0120 seconds #这里是可以按照条件查询的。 hbase(main):012:0* scan 'blog' ROW COLUMN+CELL 1 column=content:header, timestamp=1407464302384, value=this is header 1 column=info:address, timestamp=1407464281942, value=bj 1 column=info:editor, timestamp=1407464270098, value=liudehua 1 row(s) in 0.0490 seconds hbase(main):013:0> hbase(main):014:0* put 'blog','1','content:header','this is header2' 0 row(s) in 0.0080 seconds hbase(main):015:0> hbase(main):016:0* hbase(main):017:0* put 'blog','1','content:header','this is header3' 0 row(s) in 0.0050 seconds hbase(main):018:0> scan 'blog' ROW COLUMN+CELL 1 column=content:header, timestamp=1407464457128, value=this is header3 1 column=info:address, timestamp=1407464281942, value=bj 1 column=info:editor, timestamp=1407464270098, value=liudehua 1 row(s) in 0.0180 seconds hbase(main):020:0> get 'blog','1','content:header' COLUMN CELL content:header timestamp=1407464457128, value=this is header3 1 row(s) in 0.0090 seconds hbase(main):021:0> 原文:http://rfyiamcool.blog.51cto.com/1030776/1537505 #可以看到历史版本记录 hbase(main):022:0* get 'blog','1',{COLUMN => 'content:header',VERSIONS => 2} COLUMN CELL content:header timestamp=1407464457128, value=this is header3 content:header timestamp=1407464454648, value=this is header2 2 row(s) in 0.0100 seconds #可以看到历史版本记录 hbase(main):023:0> get 'blog','1',{COLUMN => 'content:header',VERSIONS => 3} COLUMN CELL content:header timestamp=1407464457128, value=this is header3 content:header timestamp=1407464454648, value=this is header2 content:header timestamp=1407464302384, value=this is header 3 row(s) in 0.0490 seconds hbase(main):024:0> base用java来操作是最方便,也效率最高的方式。但java并非轻量级,不方便在任何环境下调试。而且不同的开发人员熟悉的语言不一样,开发效率也不一样。hbase 通过thrift,还可以用python,ruby,cpp,perl等语言来操作。 thrift是facebook开发开源的类似google的protobuf的远程调用组件。但protobuf只有数据的序列化,且只支持二进制协议,没有远程调用部分。protobuf原生支持cpp,python,java,另外还有第三方实现的objectc,ruby等语言。而thrift是实现了序列化,传输,协议定义,远程调用等功能,跨语言能力更多。某些方面二者可以互相替代,但一些方面则各有适用范围。 原文:http://rfyiamcool.blog.51cto.com/1030776/1537505 thrift的安装及thrift python的相关模块 ~ 1 2 3 4 5 6 7 http: / / www.apache.org / dist / / thrift / 0.9 . 1 / thrift - 0.9 . 1.tar .gz tarzxvfthrift - 0.8 . 0.tar .gz cdthrift - 0.8 . 0 . / configure - with - cpp = no make sudomakeinstall sudopipinstallthrift 这里是可以生成python的thrift和hbase模块 ~ 1 thrift - genpy / home / ubuntu / hbase - 0.98 . 1 / hbase - thrift / src / main / resources / org / apache / hadoop / hbase / thrift / Hbase.thrift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from thrift.transport import TSocket from thrift.protocol import TBinaryProtocol from hbase import Hbase transport = TSocket.TSocket( 'localhost' , 9090 ) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = Hbase.Client(protocol) transport. open () client.getTableNames() 原文:http://rfyiamcool.blog.51cto.com/1030776/1537505 hbase 0.98的版本 貌似没有thrift的相关组建,我这里的用的是0.94版本搞定的。 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1537505,如需转载请自行联系原作者

优秀的个人博客,低调大师

小黑的日常折腾-快速建立私有CA的shell脚本

小黑又开始折腾新的东西了,上周刚学习完openssl建设私有CA,周六就花了点时间写了这个脚本,时间仓促,搞完就去撸DNS了,如果有啥BUG请见谅,本脚本纯属练习,用来练openssl、awk、sed等知识点。 先来介绍下建设私有CA的简单步骤(以下路劲为默认安装路径): (1) 生成私钥; ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) (2) 生成自签证书; ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655 -new:生成新证书签署请求; -x509:生成自签格式证书,专用于创建私有CA时; -key:生成请求时用到的私有文件路径; -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书; -days:证书的有效时长,单位是day; (3) 为CA提供所需的目录及文件; ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} ~]# touch /etc/pki/CA/{serial,index.txt} ~]# echo 01 > /etc/pki/CA/serial 本脚本通过分析openssl.conf文件来得到相关路径,再通过命令建设私有CA,自签证书的相关信息通过数组保存通过echo命令传给生成自签证书的命令。具体的脚本内容如下: #!/bin/bash #Program: #ThisprogramisusedtocreatCA #History: #2016/4/9xiaoheiv1.0 #blog:http://zww577593841.blog.51cto.com/6145493/1750689 # #私有CA存放目录 #dir #已颁发的证书的存放目录 #certs #已吊销的证书的存放目录 #crl_dir #新证书的存放目录 #new_certs_dir #当前证书的序列号保存文件 #serial #已颁发证书的索引文件 #database #CA的自签证书 #certificate #CA的私钥 #private_key #openssl.conf配置文件的位置 declareconffile=/etc/pki/tls/openssl.cnf #定义一个数组保存CA配置文件中需要保存的一些属性名称 declare-avar var=("dir""certs""crl_dir""new_certs_dir""serial""database""certificate""private_key") #临时文件和目录 declare-atempfile tempfile=("./ca_default.txt""./ca_value.txt") #必要的文件和目录 declare-acreatfile declare-acreatdir creatfile=("serial""database") creatdir=("certs""crl_dir""new_certs_dir") #openssl.conf关于CA的相关属性 declare-Aca #自签证书需要填写的信息:国家(大写的两个字母);省;市;公司;部门;主机名;邮箱(可选) cainfo=("CN""Beijing""Beijing""blackboy""ops""ca.blackboy.com""blackboy@163.com") #信号捕捉 trap'mytrap'INT mytrap(){ clean_temp echo-e"\033[31mexit\033[0m" exit } #清理临时文件和变量及数组 clean_temp(){ for((i=0;i<${#tempfile[*]};i++));do mv-f${tempfile[$i]}/tmp/ done unset-vconffile unset-vvar unset-vtempfile unset-vca unset-vcreatfile unset-vcreatdir unset-vcainfo } #分析文件或者目录是否存在 analyse_file_dir(){ if[-f"$1"];then echo-e"\033[32mfile$1exist\033[0m" return0 elif[-d"$1"];then echo-e"\033[32m$1isexist\033[0m" return0 else echo-e"\033[31m$1isnotexist\033[0m" return1 fi } #创建需要的文件 creat_file(){ touch"$1" analyse_file_dir"$1"&>/dev/null&&echo-e"\033[32mcreat$1successful\033[0m"||return1 return0 } #创建需要的目录 creat_dir(){ mkdir-pv"$1" analyse_file_dir"$1"&>/dev/null&&echo-e"\033[33mcreat$1successful\033[0m"||return1 return0 } #分析并获得conffile变量保存的路径所指的openssl.conf文件的一些信息 analyse_conf(){ analyse_file_dir$1||exit1 #通过sed获得配置文件自己需要的部分的内容 sed-n'/\[CA_default/,/##/s@[#].*@@gp'$1|sed's/=/=/g'>${tempfile[0]} #通过awk格式化上步得到内容并保存到临时文件中 awk'/^[^[:space:]]/{a[$1]=$3}END{for(iina){printf""i"=%s\n",a[i]};}'${tempfile[0]}>${tempfile[1]} #定义局部变量保存dir项的路径 localdir=$(sed-n's/^dir=//p'${tempfile[1]}) #配置文件中$dir代替了dir的路径,还原为其真实路径,并保存在临时文件中 sed-i"s@[$]dir@$dir@g"${tempfile[1]} echo"ThecurrentOpenSSLconfiguration" cat./ca_value.txt echo"#################################" #把配置文件中查找到的属性信息保存到关联数组中 for((i=0;i<${#var[*]};i++));do ca["${var[$i]}"]=$(awk-F"="'{if($1~/^'${var[$i]}'$/){print$2}}'${tempfile[1]}) done } #创建私钥 creat_private_key(){ #取文件所在目录名,如果目录不存在则创建 analyse_file_dir${1%/*}||creat_dir${1%/*}||return1 #创建私钥,大小为4096,并将创建的私钥文件的权限设置为只有当前用户可读写 (umask077;opensslgenrsa-out$14096) #分析私钥是否创建完成 analyse_file_dir$1&>/dev/null&&echo-e"\033[32mcreatprivatekeysuccessful\033[0m"||return1 echo"ok" return0 } #生成自签证书 creat_cacert(){ localinfo #生成签发证书时要填写的信息 for((i=0;i<${#cainfo[*]};i++));do info="$info${cainfo[$i]}\n" done #签发证书 echo-e"$info"|opensslreq-new-x509-key$1-out$2-days3655 #分析证书是否正常生成 analyse_file_dir$2&>/dev/null&&echo-e"\033[32mcreatcacertsuccessful\033[0m"||return1 } #如果openssl.conf文件不存在直接退出 analyse_conf$conffile||exit1 #创建必要的文件和目录,如果创建失败则退出 for((i=0;i<${#creatfile[*]};i++));do analyse_file_dir${ca[${creatfile[$i]}]}||creat_file${ca[${creatfile[$i]}]}||exit1 done for((i=0;i<${#creatdir[*]};i++));do analyse_file_dir${ca[${creatdir[$i]}]}||creat_dir${ca[${creatdir[$i]}]}||exit1 done #向证书编号文件serial中添加编号 echo"01>>>>>${ca[serial]}" echo"01">${ca[serial]} #调用函数创建CA的私钥 creat_private_key${ca[private_key]}||exit1 #创建CA自签证书 creat_cacert${ca[private_key]}${ca[certificate]}||exit1 #查看证书内容 opensslx509-in${ca[certificate]}-noout-serial-subject #清理安装过程中生成的变量、数组、和临时文件 clean_temp 脚本的运行结果如下: 时间仓促,未解释的部分,请见谅。

优秀的个人博客,低调大师

你也能成为“黑客”高手——趣谈Linux Shell编程语言

作者:京东零售 杜兴文 我们看过很多在电脑命令行敲一些命令并给观众展示很高科技的画面感的电影,比如《盗梦空间》《操作系统革命》《代码》等等, 再想想电影黑客帝国中的画面,估计会令很多人都叹为观止,其实挺简单的,只要会使用Linux操作系统就可以很简单地实现电脑屏幕的字符串雨了!是不是很高大上呢! 同时Linux系统的其他几个操作指令,都有十分酷炫的效果,绝对令人叹为观止,废话不多说,直接进入主题! 下面不妨逐一介绍这10个Linux比较有趣的命令。 1、1.cmatrix命令 接下来就是见证奇迹的时刻:  2、htop命令 htop是Linux操作系统的图形化性能检测工具,如果类比的话相当于windows操作系统的任务管理器 运行出来的结果是绿色的界面,同时动态的检测显示,下面看看是不是很酷的样子:  3、hollywood命令 说实话这个命令可能就是抖音里很火的那个,你眼中的程序猿VS现实中的程序猿: 执行结果如下:  4、aafire aafire终端命令可以将字符串像火焰一样的燃烧的输出  5、bastet命令 使用bastet命令可以在Linux系统下玩俄罗斯方块: 运行结果如下:  6、sl 运行结果是一辆呼啸而过的火车: 运性结果如下:  7、cowsay命令可以打印出来一头牛,并且可以指定让这头牛说任意的话语,  8、fortune 这是一个比较有趣的功能 在输入fortune之后,Terminal会输出一句名言,诗句,或一些有趣的话:  9、echo “" | boxes -d dog 输出一条小狗  看到以上使用简单的命令输出可爱的图案,是不是觉得Linux命令功能既强大又好玩! 另外,我们使用Linux系统基本操作命令来管理操作系统文件、配置环境,排查问题等等也是看着非常高大上的! 下面是一些基本的操作命令,用熟了操作起来也是很酷的啊!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册