首页 文章 精选 留言 我的

精选列表

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

shell下一键安装hadoop

最近在一些论坛上看到hadoop这个文件系统很是热门啊,据说淘宝,google都是采用这个玩意做的分布式的部署和存储,今天有空来玩玩,第一步安装必须解决啊,第一步就是安装JDK,因为hadoop是基于java开发的,说道运行java,不由得很是怀念当初的第一次,第一次知道跑java居然还要设置环境变量,折腾了半天,才搞定,后来开始玩linux了,第一次安装JDK,又是好异常折腾啊,哈哈。。。 追着年龄的老化,手脚的退化,已经越来越懒了,从网上下载好安装包之后,开始琢磨着让脚本去给我自动安装了, ,几经波折,终于搞定,下面贴出代码。。。。。 #!/bin/bash cp /etc/profile /etc/profile.bak1 #备份配置文件 echo "Begin to install JDK,Please waiting..." chmod +x jdk-6u26-linux-i586.bin #修改权限 echo -e "\n" | ./jdk-6u26-linux-i586.bin #开始安装jdk echo "######################################" echo "Begin to config environment variables,please waiting..." echo "######################################" ##修改jdk的环境变量,直接写入配置文件 mv /usr/local/src/jdk1.6.0_26/usr/local/src/jdk echo "export JAVA_HOME=/usr/local/src/jdk" >> /etc/profile echo "export PATH=\$JAVA_HOME/bin:\$PATH" >>/etc/profile echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >>/etc/profile echo "Begin to install Hadoop,please waiting..." #开始安装hadoop,修改环境变量 tar zxvf hadoop-0.20.203.0rc1.tar.gz mv /usr/local/src/hadoop-0.20.203.0/usr/local/src/hadoop echo "export HADOOP_HOME=/usr/local/src/hadoop/" >> /etc/profile echo "export HADOOP_CONF_DIR=\$HADOOP_HOME/conf/" >>/etc/profile echo "export PATH=\$HADOOP_HOME/bin:\$PATH" >>/etc/profile echo "export HADOOP_LOG_DIR=\$HADOOP_HOME/log " >>/etc/profile source /etc/profile #运行后直接生效 脚本很简单,相信大家都能看的懂,其实就一个地方比较纠结,当时不知道如何传一个回车键给正在运行的安装JDK的程序,后来终于找到解决方法: echo -e "\n" 就是表示回车键,解决这个之后,其他不值一提,但是,希望大家注意的是,由于每个JDK版本安装的时候,步骤都是不一样的,有的版本需要输入yes,有的还需要其他的步骤,我下载的这个版本,只需要输入回车键就好了,所以这个脚本只是针对我下载的这个版本的,不能一概全论,希望大家注意,希望对你的学习和工作有帮助。。。 本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/629667如需转载请自行联系原作者 world77

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

shell 在手分析服务器日志不愁?

自己的小网站跑在阿里云的 ECS 上面, 偶尔也去分析分析自己网站服务器日志,看看网站的访问量。看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! awk '{print $1}' log_file|sort|uniq|wc -l 2、查看某一个页面被访问的次数: grep "/index.php" log_file | wc -l 3、查看每一个IP访问了多少个页面: awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file > log.txt sort -n -t ' ' -k 2 log.txt 配合sort进一步排序 4、将每个IP访问的页面数进行从小到大排序: awk '{++S[$1]} END {for (a in S) print S[a],a}

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

监控磁盘使用率的shell脚本

本脚本来自有学习阿铭的博文学习:公司监控最基本的一般都要监控磁盘的使用情况,否则将导致业务上的事故。一般监控要求如下:每分钟都要扫描一下磁盘的状况。当磁盘空间使用率或者inode使用率高于90%的情况,就需要报警。并把统计使用率超过90%的分区的所有的子目录的,按照大小依次排列,把前3的目录名称发给到邮箱。第一次未处理,30分钟后在一次。 #!/bin/bash #用途:监控磁盘的使用情况。 #作者:Caron maktini #日期:2018年10月18日 #版本:v0.1 #把脚本名字存在变量l-name l_name=`echo $0 | awk -F '/' 'print $NF'` #定义收件人的邮箱 mail_user=admin@admin.com #定义检查磁盘的空间使用率函数 chk_sp() { df -m | sed '1d' | awk -F '% | +' '$5>90 {print $7,$5}'>/tmp/chk_sp.log n=`wc -l /tmp/chk_sp.log | awk 'print $1'` if [ $n -gt 0 ] then tag=1 for d in `awk '{print $1}' /tmp/chk_sp.log` do find $d -type d | sed '1d' | xargs du -sm | sort -nr | head -3 done >/tmp/most_sp.txt fi } #定义检查inode使用率函数 chk_in() { df -i | sed `1d` | awk -F '% | +' '$5>90 {print $7,$5}'>/tmp/chk_in.log n=`wc -l /tmp/chk_in.log | awk '{print $1}'` if [ $n -gt 0 ] then tag=2 fi } #定义告警函数 m_mail(){ log=$1 t_s=`date +%s` t_s2=`data -d "1 hours ago" +%s` if [ ! -f /tmp/$log ] then #创建$log文件 touch /tmp/$log #增加a权限,只允许追加内容,不允许更改或删除 chattr +a /tmp/$log #第一次告警,可以直接写入1小时以前的时间戳 echo $t_s2 >> /tmp/$log fi #无论#log文件是否刚刚创建,都需要查看最后一行的时间戳 t_s2=`tail -l /tmp/$log | awk '{print $1}'` # 取出最后一行及上次告警的时间戳,立即写入当期的时间戳 echo $t_s >>/tmp/$log #取两次时间戳差值 v=$[ $t_s-$t_s2 ] #如果差值超过100,立即发送邮件。 if [ $v -gt 1800 ] then #发邮件,其中$2为mail函数的第二个函数,这里为一个文件 python mail.py $mail_user "磁盘使用率超过90%" #定义技数器临时文件,并写入0 echo "0" > /tmp/$log.count else #如果技数器临时文件不存在,需要创建并写入0 if [ ! -f /tmp/$log.count } then echo "0" > /tmp/$log.count fi nu=`cat /tmp/$log.count` #30分钟内每发生1次告警,计算器加1 nu2=$[ $nu+1 ] echo $nu2>/tmp/$log.count #当告警次数超过30次,需要再次发油件 if [ $nu2 -gt 30 ] then python mail.py $mail_user "磁盘使用率90%持续30分钟了" "`cat $2`" 2>/dev/null #第二次告警后,将计算器再次从0开始 echo "0" > /tmp/$log.count fi fi } #把进程数大于0.则说明上次的脚本还未执行完 if [ $p_n -gt 0 ] then exit fi chk_sp chk_in if [ $tag == 1 ] then m_mail chk_sp /tmp/most_sp.txt elif [ $tag == 2 ] then m_mail chk_in /tmp/chk_in.log fi

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

自动监控主从MySQL同步的SHELL脚本

代码如下: #!/bin/bash #check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'` MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'` STATUS=$(/usr/local/webserver/mysql/bin/mysql -u yuhongchun -pyuhongchun101 -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running") IO_env=`echo $STATUS | grep IO | awk ' {print $2}'` SQL_env=`echo $STATUS | grep SQL | awk '{print $2}'` DATA=`date +"%y-%m-%d %H:%M:%S"` if [ "$MYSQLPORT" == "3306" ] then echo "mysql is running" else mail -s "warn!server: $MYSQLIP mysql is down" yuhongchun027@163.com fi if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ] then echo "Slave is running!" else echo "####### $DATA #########">> /data/data/check_mysql_slave.log echo "Slave is not running!" >> /data/data/check_mysql_slave.log echo "Slave is not running!" | mail -s "warn! $MYSQLIP MySQL Slave is not running" yuhongchun027@163.com fi 建议每十分钟运行一次 */10 * * * * root /bin/sh /root/mysql_slave.sh 记得在每台MySQL从机上分配一个yuhongchun的用户,权限大些也没关系,只限定在本地运行,如下所示: grant all privileges on *.* to "yuhongchun"@"127.0.0.1" identified by "yuhongchun101"; grant all privileges on *.* to "yuhongchun"@"localhost" identified by "yuhongchun101"; 脚本设计思路: 1、此脚本应该能适应各种各样不同的内外网环境,即IP不同的环境; 2、让脚本也顺便监控下MySQL是否正常运行; 3、Slave机器的IO和SQL状态都必须为YES,缺一不可,这里用到了多重条件判断-a。 脚本产生的背景环境: 我有不少基于公网类型的网站(没有硬件防火墙,直接置于IDC机房)做的都是MySQL主从架构,从机主要起备份数据库和冷备份的作用,虽然从机宕机了问题不大,但也影响数据的备份工作;这样的网站有数十个,如果一个一个手动的检查,每天都要浪费不少时间,所以玩了下脚本控,设计了如上脚本。 脚本实践: 此脚本我已用于了生产环境,大家可以放在我们的从MySQL机器上,用来监控;另外建议有时也手动检查下,有次发现rsync --delete 自动删除了/data/data里面的数据,即从数据库的位置,脚本没有报警。 后期应用: 后期公司的MySQL数据库准备由一主一从架色升级成一主多从,读写分离的架构,LVS作从数据库的负载均衡器,此脚本自动监控从MySQL的replication状态,如果不能同步则自动关闭本机的MySQL服务,免得影响整个网站的正常业务访问。当然了,到时脚本的运行周期肯定也需要更改,由10分钟变成秒级的,这个可以通过while循环来实现。 本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/666019,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

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

用户登录
用户注册