爱嫁爱情人网是真的吗吗?谁知道呢

naonao_127 的BLOG
用户名:naonao_127
文章数:33
评论数:462
访问量:201985
注册日期:
阅读量:5863
阅读量:12276
阅读量:388286
阅读量:1079390
51CTO推荐博文
&& &这个脚本是用来查找指定路径下,含有某个关键字的所有文件,并显示文件所在路径及文名。
& & 起初是因为上周帮同事解决linux下JBoss服务器验证码失效的问题,而引发的&血案&,哈哈,其实是,JBoss服务器的web页面的验证码再每次重启之后运行一段时间就不声不响地失效了,显示小红X,但一重启JBoss就会好用一阵子,从疑云重生,无所适从,峰回路转到真相大白,经过一中午的探查与研究,找出破解此案的重要线索JAVA_OPTS这个环境变量,加上-Djava.awt.headless=true这个参数就可以解决验证码时而失效的问题了。
& & 当时查找JAVA_OPTS环境变量在那个配置文件时,我用的是find命令查找$JBOSS_HOME路径下的conf文件,虽然很快找到了我要的文件,但我觉得这满足不了我&强迫症&的习惯。因此事后,我决定写个脚本来查找指定路径下包含某关键字的所有文件,开始是写成非交互式的shell脚本,后因一位本站志同道合的朋友说,如果写成交互式的,即运行时给变量赋值,这样一劳永逸,无需改代码。后来仔细琢磨了一下,也不无道理,尽管我有自己的编码风格,但还是广纳贤言吧,哈哈。
& & 此脚本为最终脚本:
&&&&&echo&-e&&\nThis&is&a&script&to&find&all&the&files&in&a&specified&path&contains&a&keyword!&&&echo&-e&&\nPlease&input&a&keyword:&&read&key&if&[&&$key&&==&&&&];&then&&&&&echo&-e&&keyword&can&not&be&null!\n&&&&&&exit&0&fi&keyword=$key&&echo&-e&&\nPlease&input&your&specified&path:&&read&dir&&test&!&-d&$dir&&&&echo&-e&&The&$dir&is&not&exist&in&your&system.\n\n&&&&&exit&0&&echo&-e&&\n---------------You&find&files&are:---------------\n&&&&&&&file_count=0&&file_list=`ls&-R&$dir&2&&/dev/null&|&grep&-v&'^$'`&for&file_name&in&$file_list&do&&&&&&&&&&&&&&&temp=`echo&$file_name&|&sed&'s/:.*$//g'`&&&&&&&&&&if&[&&$file_name&&!=&&$temp&&];&then&&&&&&&&&cur_dir=$temp&&&&&&&&&&&&&&else&&&&&&&&&&&&&&&&&&file_type=`file&$cur_dir/$file_name&|&grep&&text&`&&&&&&&&&if&[&&$file_type&&!=&&&&];&then&&&&&&&&&&&&&temp=`grep&$keyword&$cur_dir/$file_name&2&&/dev/null`&&&&&&&&&&&&&&&&&&&&&&&&&&if&[&&$temp&&!=&&&&];&then&&&&&&&&&&&&&&&&&echo&$cur_dir/$file_name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&let&file_count++&&&&&&&&&&&&&fi&&&&&&&&&fi&&&&&fi&done&&echo&-e&&\n-------------------------------------------------&&echo&-e&&\n\nFiles&Total:&$file_count&&echo&-e&&\nFind&Finished!\n&&
运行效果如下:
这是我用来写脚本做实验的效果,其中&cmd&为关键字,/tmp为指定路径,然后什么t.c啊,test.txt,file系列都是我echo cmd & 丢进去的,以便模拟我要的环境。
这才是我写脚本的真正目的,为了查找我要的环境变量JAVA_OPTS,效果如下:
输入keyword和path,即可帮我找到我要的文件,其中红框框的就是我要的
这就是run.conf配置文件里的JAVA_OPTS变量,而-Djava.awt.headless=true就是使验证码正确显示的关键参数。特此记下侦破此案的关键证据。
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
12:59:48 13:05:14 19:01:39 19:38:22 16:56:51 16:25:37 10:53:02Linux Shell脚本实现在文件指定的行插入字符串 - 推酷
Linux Shell脚本实现在文件指定的行插入字符串
涉及知识点:grep字符串查找,awk截取列,until条件操作,sed字符串插入,变量与字符串连接等。
人工操作(首先vim打开文件找到字符串所在的位置,插入操作):
vim /etc/glance/glance-api-paste.ini
auth_host = controller
admin_user = glance
admin_tenant_name = service
admin_password = 94fbb57c427f539b0fc5
Shell脚本实现(grep查找字符串位置,sed执行插入操作):
num=$(grep -n '\[filter:authtoken\]'
/usr/share/glance/glance-api-paste.ini | awk -F ':' '{print $1}')
until [[ $(sed -n &$nump& /usr/share/glance/glance-api-paste.ini) == && ]]; do
num=$(expr $num + 1)
nump=$num&p&
numa=$num&a&
sed -i '$numa auth_host = controller
admin_user = glance
admin_tenant_name = service
admin_password = 94fbb57c427f539b0fc5' /usr/share/glance/glance-api-paste.ini
已无害化处理。
sed中的sub命令如a插入,p打印等不能直接跟变量相连接,使用双引号进行连接,如“numa=$num&a&”。
标签:shell,sed,grep,字符串操作,变量与字符串连接
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
实现要求:创建用户student1到student50,指定组为student组!而且每个用户需要设定一个不同的密码!脚本实现如下:#!/bin/bashfor i in `seq 1 50`do&&&&useradd -G student student$&&&&&echo student$i | passwd student$i --done&【说明:Linux下 Passwd有参数  --stdin  This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.  所以linux下自动改变用户密码的办法就是:  Echo 密码 |passwd –stdin 用户名】-------------------设置相同的密码------------------------#!/bin/bashpassword="123456"for USER in user1 user2 user3do&&&&&useradd -m $USER&&&&&echo -e "${password}\n${password}" |&passwd $USERdone&【说明:&&&&&echo -n 不换行输出:$echo -n "123"$echo "456"最终输出&123456而不是123456&&&&echo -e 处理特殊字符:&&&&&&&&\n 换行且光标移至行首&】&ok,就这么一个简单的脚本,就可以再系统里批量生成账号了。而且密码跟账号的名字一样。这就是for do done语句用法。2、 编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:#!/bin/bashfor FILE in `ls /usr/local/test`do& & if [ -f $FILE&]&; then&&&&& & if [ `ls -l &$FILE | awk `{print $5}` -gt 100000&]&; then&&&&&&&&& & mv $FILE &/tmp/&&&&& & fi& & fidone================#!/bin/bashfor FileName in `ls -l &/usr/local/test&| awk '$5&102400'&{print $9}`do&&&&& & mv $FileName &/tmp/donels -al &/tmp/echo &"done!"3、通过apache访问日志access.log 统计IP和每个地址访问的次数,按访问量列出前10名。& & &日志格式样例如下:& & &192.168.1.247 &---【02/jul/:59 + 8080&】 "GET /HTTP/1/1" & 200 19& & &答案:& & & & &cat &access.log | awk '{print &$1}' |sort| uniq -c |sort -rn |head -10&(uniq 参数说明:– c 显示输出中,在每行行首加上本行在文件中连续出现的次数。& & &sort参数说明:sort默认的排序方式是升序,-r 参数就会改变成倒叙;你有没有遇到过10比2小的情况。我反正遇到过。&&&&& &&&&&&&&&&&&&&&&&&&&&&&出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将&&&&&&&&&&&&&&&&&&&&&&&&&&&&10放在2前面喽。这也是sort的一贯作风。)4、一台监控主机,一台被监控主机。被监控主机分区使用率大于80%,就发告警邮件。放到crontab里面,每10分钟执行一次。&&&&& & a、 首先两台机器要建立服务器间的信任关系。& & & & b、脚本:& & & & & & & #!/bin/bash& & &&&&&&&&&&&&&&&&&&&&&&& & FSMAX="80"&&&&&&&&&&&&& & remote_user='root'& & & & & & & & remote_ip=(IP地址列表)& & & & & & && & ip_num='0'&&&&&&&&&&&&& & while [ "$ip_num" -le "$(expr ${#remote_ip[@]} -l)"]&&&&&&&&&&&&& & do&&&&&&&&&&&&&&&&& & &&&&read_num='1'&&&&&&&&&&&&&&&&& & &&&&ssh "$remote_user"@"${remote_ip[$ip_num]}" &df -h & /tmp/diskcheck_tmp&&&&&&&&&&&&&&&&& &&&&&&grep '^/dev/*' &/tmp/diskcheck_tmp | awk '{print $5}'|sed 's/\%//g' && /tmp/diskcheck_num_tmp&&&&&&&&&&&&&&&&& & &&&&&&&&&&&&&&&&&&&&&&&&& & while [ "$read_num" -le $(wc -l & /tmp/diskcheck_num_tmp)&]&&&&&&&&&&&&&&&&&&&&&&&&& & do&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&size=$(sed -n "$read_num" 'p' &/tmp/diskcheck_num_tmp)&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&& if [ "size" -gt "$FSMAX"&]& & & & & & & & & &&&&&&&&&&&&&&&&&&&&&&&&& then&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&& $(grep '^/dev/*' &/tmp/diskcheck_tmp |sed -n $read_num'p' && /tmp/disk_check_mail)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &$(echo ${remote_ip[$ip_num]}) && /tmp/disk_check_mail)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & $(mail &-s "diskcheck_alert"& admin && &/tmp/disk_check_mail)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & fi&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&& & read_num=$(expr &$read_num + 1)&&&&&&&&&&&&&&&&&&&&&&&&& & done&&&&&&&&&&&&& &&&&&&&&& ip_num=$(expr &$ip_num + 1)&&&&&&& &&&&& done& & & & & & & ===================写入crontab=====================&&&&&&&&&&&&& & 0/10 * * * * & /home/diskcheck.sh & 2&&15、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告#!/bin/bash#monitor available disk space#提取本服务器的IP地址信息 &IP=`ifconfig&eth0&|&grep&"inet&addr"&|&cut&-f&2&-d&":"&|&cut&-f&1&-d&"&"` &&&SPACE=` df -hP | awk '{print int($5)}'`if [ $SPACE -ge 90 ]then
echo&"$IP&服务器&磁盘空间&使用率已经超过90%,请及时处理。"|mail&-s&"$IP&服务器硬盘告警"& &fi6、自动ftp上传& & && &#! /bin/bash& & ftp -n && END_FTP& & open 192.168.1.22& & user &test testing & & &//用户名test &密码:testing& & binary& & prompt &off & &//关闭提示& & mput & files & & //上传files文件& & close& & bye& & END_FTP6、编写shell脚本,获取本机的网络地址。比如:本机的ip地址是:192.168.100.5/255.255.255.0,那么他的网络地址是:192.168.100.1/255.255.255.0方法一:#!/bin/bashIP=ifconfig eth0|grep 'inet addr'|sed 's/^.*addr://g'|awk &'{print $1}'&NETMASK=ifconfig eth0 |grep "inet addr"|sed 's/^.*Mask://g'echo "$IP/&NETMASK"exit方法二:#!/bin/bash&#This script print ip and network&file="/etc/sysconfig/network-scripts/ifcfg-eth0"&if [ -f $file ] ;then&&&&&IP=`grep "IPADDR" $file|awk -F"=" '{ print $2 }'`&&&&&MASK=`grep "NETMASK" $file|awk -F"=" '{ print $2 }'`&echo "$IP/$MASK"&exit 1&fiIP地址也可这样获取:IP=`ifconfig&eth0&|&grep&"inet&addr"&|&cut&-f&2&-d&":"&|&cut&-f&1&-d&"&"子网掩码:NETMASK=&`ifconfig&eth0&|&grep&"inet&addr"|cut -f 4 -d ":"&7、某系统管理员需要每天做一定的重复工作,编制一个解决方案:(1).从下午4:50 删除/abc 目录下的全部子目录和全部文件;(2).从早上8:00~下午6:00 每小时读取/xyz 目录下x1 文件中每行第一个域的全部数据加入到/backup 目录下的back01.txt 文件内;(3).每逢周一下午5:50 将/data 目录下的所有目录和文件归档并压缩为文件backup.tar.(4).在下午5:55 将IDE 接口的CD-ROM 缷载(假设CD-ROM 的设备名为hdc);(5).在早上8:00 前开机后启动。(a)用vi创建编辑一个名为prgx的crontab文件;(b)prgx文件的内容:&&&&&&&&&&&&50 16 * * * rm -r /abc/*&&&&&&&&&&&&0 8-18/1 * * * cut -f1 /xyz/x1 &&& /backup/bak01.txt&&&&&&&&&&&&50 17 * * * tar zcvf backup.tar.gz /data&&&&&&&&&&&&55 17 * * * umount /dev/hdc(c)由超级用户登录,用crontab执行 prgx文件中的内容:&&&&&&&&&&&&root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab8.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30&参考答案:&#!/bin/sh&i=1&groupadd class1&while [ $i -le 30 ]&do&if [ $i -le 9 ] ;then&USERNAME=stu0${i}&else&USERNAME=stu${i}&fi&useradd $USERNAME&mkdir /home/$USERNAME&chown -R $USERNAME /home/$USERNAME&chgrp -R class1 /home/$USERNAME&i=$(($i+1))&done&9.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。&参考程序:&#!/bin/sh&i=1&while [ $i -le 50 ]&do&userdel -r stud${i}&i=$(($i+1 ))&done&10.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。&参考答案:&(1)编写shell程序fileback:&#!/bin/sh&DIRNAME=`ls /root | grep bak`&if [ -z "$DIRNAME" ] ; then&mkdir /root/bak&cd /root/bak&fiBACKETC=$(date +%Y%m%d)_etc.tar.gz&tar zcvf &$BACKETC &/etc&echo "fileback finished!"&(2)编写任务定时器:&echo "0 0 1 * * /bin/sh /usr/bin/fileback" &; /root/etcbakcron&crontab /root/etcbakcron&或使用crontab -e 命令添加定时任务:&0 1 * * * /bin/sh /usr/bin/fileback&11.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?&参考答案:(1)第一种方法:&用户应使用crontab –e 命令创建crontab文件。格式如下:&0 0 * * sun cp –r /user/backup /tmp&(2)第二种方法:&用户先在自己目录下新建文件file,文件内容如下:&0 * * sun cp –r /user/backup /tmp&然后执行 crontab file 使生效。&12.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。&参考答案: 建立程序 Pro16如下:&#!/bin/sh&i=1&while [ i -le 50 ]&do&if [ -d /userdata ];then&mkdir -p -m 754 /userdata/user$i & 加上-m 754 就不用写下面那一句了 &-p 是递归建立目录&#chmod 754 /userdata/user$i&echo "user$i"&let "i = i + 1" (或i=$(($i+1))&else&mkdir /userdata&mkdir -p -m /userdata/user$i&#chmod 754 /userdata/user$i&echo "user$i"&let "i = i + 1" (或i=$(($i+1))&fi&done
阅读(9678)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'运维常用shell脚本',
blogAbstract:'1、用shell脚本批量建立Linux用户实现要求:创建用户student1到student50,指定组为student组!而且每个用户需要设定一个不同的密码!脚本实现如下:',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:0,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 珍爱网发邮件的真的吗 的文章

 

随机推荐