首页 文章 精选 留言 我的

精选列表

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

hbase:用于实现版本文件及配置同步的两个shell脚本

复制master节点上的版本内容到所有slaves节点上 注意: 1:版本目录做了软链接,如 ln -s hbase-0.94.6 hbase 2: 要根据实际情况,将/usr/local/修改为hbase所在的目录 #!/bin/bash # copy a new release of HBase from the masternode to all slave nodes # Rsyncs HBase files across all slaves. Must run on master. # Assumes all files are located in /usr/local if [ "$#" != "2" ]; then echo "usage: $(basename $0) <dir-name> <ln-name>" echo " example: $(basename $0) hbase-0.1 hbase" exit 1 fi SRC_PATH="/usr/local/$1/conf/regionservers" for srv in $(cat $SRC_PATH); do echo "Sending command to $srv..."; rsync -vaz --exclude='logs/*' /usr/local/$1 $srv:/usr/local/ ssh $srv "rm -fR /usr/local/$2 ; ln -s /usr/local/$1 /usr/local/$2" done echo "done." 同步master节点上的配置文件到所有region servers 注意: 1:版本目录做了软链接,如 ln -s hbase-0.94.6 hbase 2: 要根据实际情况,将/usr/local/修改为hbase所在的目录 #!/bin/bash # Rsync's HBase config files across all region servers. Must run on master. for srv in $(cat /usr/local/hbase/conf/regionservers); do echo "Sending command to $srv..."; rsync -vaz --delete --exclude='logs/*' /usr/local/hadoop/ $srv:/usr/local/hadoop/ rsync -vaz --delete --exclude='logs/*' /usr/local/hbase/ $srv:/usr/local/hbase/ done echo "done." rsync命令简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 工作模式 rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... [USER@]HOST::SRC DEST rsync [OPTION]... SRC [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 使用参数说明 -v, --verbose 详细模式输出 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -z, --compress 对备份的文件在传输时进行压缩处理 --delete 删除那些DST中SRC没有的文 --exclude=PATTERN 指定排除不需要传输的文件模式

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

干掉一堆mysql数据库,仅需这样一个shell脚本

一大早就被电话吵醒了,云某项目数据库全挂了,启动不了(睡得太死,没听到报警短信),吓得不轻啊! 电话中说所有mysql数据库主库都启动不了,但从库正常,怀疑是主库去连其它阿里云的主库了。这些数据库,以前是从阿里云迁移到idc机房的,因此他有这个判断。 赶紧打开电脑,连***,登录其中一个数据库服务器,试着执行如下命令启动mysql服务 [root@bbsmysql121 backup]#mysqld_safe –user=mysql & 启动失败,又换一台数据库服务器尝试,还是失败。考虑到所有的数据库都不能启动,因此可以初步判定,可能是数据库宿主机的问题导致的。 数据库的底层设计是两台物理节点虚拟化,外加一台物理机做备份。其中一台物理机的虚拟机全部做mysql主库,另一台物理机的虚拟机做mysql从库。 先放弃在虚拟机进行故障排查,赶紧登录宿主机系统。接下来,从两个方面排查问题所在。 ü 虚拟化后台管理系统 发现存储被塞满了,问题很严重。 ü ssh登录宿主系统debian [6885005.756183] Buffer I/O error on dev dm-16, logical block 34667776, lost async page write[6885005.757292] Buffer I/O error on dev dm-16, logical block 34667792, lost async page write[6885005.758210] Buffer I/O error on dev dm-16, logical block 34667808, lost async page write[6885005.759079] Buffer I/O error on dev dm-16, logical block 34667824, lost async page write[6885005.759922] Buffer I/O error on dev dm-16, logical block 34667840, lost async page write[6885005.760723] Buffer I/O error on dev dm-16, logical block 34667856, lost async page write 系统日志/var/log/messages发现大量的磁盘io错误。 综合上述发现,基本可以断定是磁盘出了问题:一个问题是proxmox划定的存储空间被塞满,另一个是磁盘io错误。知道问题所在以后,接下来的处理方案有两个:修复错误或者把从库提升为主库。考虑到待机问题,还是尽量争取修复主库吧,实在不能修复,再用第二套方案(提升从库)。 释放磁盘空间 为什么磁盘空间会塞满呢?应该有人在虚拟机上干了啥,而且可能是每个虚拟机都进行相同的操作,才会导致宿主机磁盘空间迅速填满。随便登录某个运行mysql数据库的虚拟机,执行命令 df-h 再登其它服务器,分区/dev/sdb1也是使用了90%以上。进入目录/data,运行如下指令查看目录空间占用情况: [root@cumysql121data]#du-hs* 4.0Kbackup 59Gdb_pkg 59Gmysql_db [root@cumysql121data]#cdbackup [root@cumysql121backup]#du-hs* 好家伙,好几个50多G的目录(写这个文章时,我已经删掉了,没有留存记录),这些文件,从目录名称上看,应该是备份数据库自动生成的。不管它,先删除。 肯定有人在系统做了自动任务,用指令crontab –l 查看,果然有发现: #!/bin/bash /usr/local/xtrabackup/bin/innobackupex--defaults-file=/etc/my.cnf--user=root--passwor='+N4dohask+MsLhG'/data/backup/ find/data/backup/*-mtime+1-execrm-fr{}\; ~ 初一看这个脚本没什么问题,再仔细看,最后一行是符号“~”,有问题啊!写脚本的人的意图是每天进行一次备份数据库备份,然后删除前一天的历史备份数据,这样就不会把磁盘塞满了。 但是这有两个致命的问题,这里分别描述之。 备份策略错误 有专门的备份系统,应该把数据备份到该系统上,而不是本地备份。 手段错误 备份脚本写好以后,应该手动执行,以验证其正确性。而不是写完,直接扔在上边不管。 修复磁盘错误 紧急联系机房,请技术人员把KVM over 连接到宿主机,万一系统引导不了,可远程查看或者进入单用户模式进行 fsck一类的修复操作。 Ssh连宿主机系统debian,确认被塞满的磁盘空间被释放,然后执行reboot重启系统。几分钟以后,系统正常引导。 后续操作 查看系统日志,没有磁盘io报错,创建目录及文件,正常;启动各虚拟机、启动其上的数据库,都正常了。 通知各路人马,从业务层面检查是否正常。片刻,短信来一堆恢复信息,心里踏实多了。不用说,是项目方的sa干的这个好事,并且没有通知任何人。 私下给他说,这事自己跟其它人解释,以后干有风险的事情,最好相互通知一下。

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Spring

Spring

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

Rocky Linux

Rocky Linux

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

用户登录
用户注册