linux shell 遍历指定目录下的所有文件夹

在linux 中,如何遍历指定目录下的所有文件夹呢? 要求能搜索结果中包含隐藏文件夹 脚本名:ergodic_folder.sh 脚本内容: Shell代码   #!/bin/sh list_alldir(){     for file2 in `ls -a $1`     do         if [ x"$file2" != x"." -a x"$file2" != x".." ];then             if [ -d "$1/$file2" ];then                 echo "$1/$file2"                 list_alldir "$1/$file2"             fi         fi     done } list_alldir ./test   测试如下:   [root@localhost whuang]# ./ergodic_folder.sh ./test/.abc ./test/.abc/.ccc ./test/bbb

mysql全量备份、增量备份实现方法

mysql全量备份、增量备份。开启mysql的logbin日志功能。在/etc/my.cnf文件中加入以下代码: ? 1 2 3 4 5 6 7 [mysqld] log-bin = "/home/mysql/logbin.log" binlog-format = ROW log-bin-index = "/home/mysql/logindex" binlog_cache_size=32m max_binlog_cache_size=512m max_binlog_size=512m 重启mysql即可。其中路径 /home/mysql的用户和组要改成mysql。 2、增量备份 在/home/mysql/目录下建立以下目录: ? 1 mkdir -p /home/mysql/backup/daily 增量备份脚本 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 … Continue reading mysql全量备份、增量备份实现方法

mysql数据库误删除后的数据恢复操作说明

http://www.cnblogs.com/kevingrace/p/5904800.html 在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失! 然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办??? 下面,就mysql数据库误删除后的恢复方案进行说明。 一、工作场景 (1)MySQL数据库每晚12:00自动完全备份。 (2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库! (3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复。 二、数据恢复思路 (1)利用全备的sql文件中记录的CHANGE MASTER语句,binlog文件及其位置点信息,找出binlog文件中增量的那部分。 (2)用mysqlbinlog命令将上述的binlog文件导出为sql文件,并剔除其中的drop语句。 (3)通过全备文件和增量binlog文件的导出sql文件,就可以恢复到完整的数据。 三、实例说明 ---------------------------------------- 首先,要确保mysql开启了binlog日志功能 在/etc/my.cnf文件里的[mysqld]区块添加: log-bin=mysql-bin 然后重启mysql服务 ---------------------------------------- (1)在ops库下创建一张表customers mysql> use ops; mysql> create table customers( -> id int not null auto_increment, -> name char(20) not null, -> age int not null, -> primary key(id) -> )engine=InnoDB; Query OK, 0 rows affected (0.09 … Continue reading mysql数据库误删除后的数据恢复操作说明

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

https://www.cnblogs.com/kevingrace/p/5907254.html 众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一、初步了解binlog MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 ---------------------------------------------------------------------------------------------------------------------------------------------- DDL ----Data Definition Language 数据库定义语言 主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。 DML ----Data Manipulation Language 数据操纵语言 主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 ---------------------------------------------------------------------------------------------------------------------------------------------- mysqlbinlog常见的选项有以下几个: --start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间 --stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样 --start-position:从二进制日志中读取指定position 事件位置作为开始。 --stop-position:从二进制日志中读取指定position 事件位置作为事件截至 ********************************************************************* 一般来说开启binlog日志大概会有1%的性能损耗。 binlog日志有两个最重要的使用场景: 1)MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到 master-slave数据一致的目的。 2)自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。 binlog日志包括两类文件: 1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件 2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。 二、开启binlog日志: 1)编辑打开mysql配置文件/etc/mys.cnf [root@vm-002 ~]# vim /etc/my.cnf 在[mysqld] 区块添加 log-bin=mysql-bin 确认是打开状态(mysql-bin 是日志的基本名或前缀名); 2)重启mysqld服务使配置生效 [root@vm-002 ~]# /etc/init.d/mysqld stop [root@vm-002 ~]# /etc/init.d/mysqld … Continue reading Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

如何通过Git将本地项目提交到码云或GitHub

何为码云? 码云是专为开发者提供稳定、高效、安全的云端软件开发协作平台。 无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。 PS: 说白了就是和Github一样。但没有Github的开发者和项目多,再怎么说,人家是全球性的。 但码云速度快(毕竟在国内),私有仓库免费,而且不限制私有库和公有库数量,可以作为备份仓库。 OS环境:CentOS Linux release 7.4.1708 (Core) 1.安装配置Git $ yum install git -y $ git config --global user.name "renwole" $ git config --global user.email renwole@renwole.com 2.在终端生成ssh公钥 执行下面命令,三次回车即可生成 ssh key: $ ssh-keygen -t rsa -C "renwole@renwole.com" 3.查看生成的public key $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDR9k1FgZRJN3P7V9tLfWZQ...... 将以上打印出屏幕的内容添加到码云。 说明:SSH key添加地址:https://gitee.com/profile/sshkeys。公钥标题任意。 4.测试是否可以信任连接 添加后,在终端中输入以下命令: $ ssh -T git@gitee.com The … Continue reading 如何通过Git将本地项目提交到码云或GitHub

MySQL自动备份并提交到码云Git仓库

之所以选择码云是因为其私有仓库是免费的,而GitHub私有仓库是收费,约7+美元一月,对于个人开发者似乎也是一笔不小的费用。 在创建自动将备份上传到码云Git仓库前,建议您先看下以下文章: 《如何通过Git将本地项目推送到码云或GitHub》 对于不太了解Git的朋友来说,此文章非常有用,否则在进行以下步骤时会出现各种报错。 实现方案: 登录到码云 创建私有仓库 服务器生成ssh公钥 创建SSH公钥 以上步骤在上文中有详细说明。 1.创建shell脚本文件: $ cd /mnt/renwole $ vim mysqlbak.sh 2.添加以下内容: #!/bin/bash createAt=`date +%Y-%m-%d-%H:%M:%S` mysql_back_path=/mnt/MySQL-Bak /usr/local/mysql/bin/mysqldump -u数据库用户名 -p密码 数据库名 > $mysql_back_path/renwoleblog-$createAt.sql # 自动删除7天前的备份 # -type 文件类型 f是文件 find $mysql_back_path -name "*.sql" -type f -mtime +7 -exec rm -rf {} \; cd $mysql_back_path git add -A git commit -m … Continue reading MySQL自动备份并提交到码云Git仓库

Zabbix 监控 Redis 数据库性能

说明:以下所有操作均在 Zabbix Agent 客户端操作。 部署环境: OS:CentOS Linux release 7.4.1708 (Core) x64 Zabbix Servers:3.4 Redis Servers:4.0 先决条件: 《Linux Centos7 Redis 源码编译安装配置》 1.修改主机 Host 文件末端添加以下内容: $ vim /etc/hosts 10.28.204.65 s102820465 2.安装 Python 依赖包 $ yum -y install python-pip $ pip install argparse $ pip install redis 3.下载 Zabbix 官方提供的 Template Redis 模板 将下载到本地的压缩包传入到tmp目录后解压: https://github.com/adubkov/zbx_redis_template $ cd /tmp … Continue reading Zabbix 监控 Redis 数据库性能

Zabbix 监控 Nginx status 性能

其实zabbix对nginx的服务状态监控,网上有很多相关模板以及设置方法,根据自己的需求修改即可,后期我会写一些比较详细用于生产环境中的一些教程。 部署环境: OS:CentOS 7.4 WEB: Nginx 1.3 监控:Zabbix 3.4 先决条件: 《Centos 7 源码编译安装 Nginx》 注意:主要是 –with-http_stub_status_module 模块。 1.修改 nginx.conf 在 server 段 添加以下内容: $ vim /usr/local/nginx/conf/nginx.conf location /stub_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } 2.重启Nginx服务并测试访问 $ systemctl restart nginx.service $ curl http://127.0.0.1/stub_status Active connections: 1 server accepts handled requests 304 304 … Continue reading Zabbix 监控 Nginx status 性能

Zabbix 3.4 JMX 监控 Tomcat 性能

先决条件: 《Zabbix Servers 3.4 源代码编译安装》 《Linux Apache Tomcat 8.5 安装与配置》 如果完成了以上安装的部署,继续下一步。 Zabbix服务器端配置: 1.配置 zabbix_server.conf 主要参数: ... #JavaGateway服务器地址,zabbix-server与zabbix_java_gateway在同台服务器。 JavaGateway=10.10.204.62 JavaGatewayPort=10052 #设置javaGateway抓取数据的进程数,当设置为0时表示不具有抓取java信息的能力。 StartJavaPollers=5 ... 在Zabbix Servers安装过程中,以上参数我已经配置完成。 2.配置 Zabbix Java gateway 修改完成后的内容如下: $ egrep -v '^#|^$' /usr/local/zabbix/sbin/zabbix_java/settings.sh #Zabbix Servers IP LISTEN_IP="0.0.0.0" #Port LISTEN_PORT=10052 #PID_FILE路径必须正确。 PID_FILE="/usr/local/zabbix/sbin/zabbix_java/zabbix_java.pid" #START_POLLERS项是配置启动的进出数,若不配置 zabbix_java 依旧可以启动但无法抓取数据。 START_POLLERS=5 #网络超时时间。 TIMEOUT=3 3.启动 zabbix_java $ /usr/local/zabbix/sbin/zabbix_java/startup.sh 启动后可通过 ss -ntlp … Continue reading Zabbix 3.4 JMX 监控 Tomcat 性能

Zabbix 3.4 监控 MariaDB(MySQL) 数据库性能

先决条件: 首先你需要安装 Zabbix Servers 及 Zabbix-agentd 端: 《Zabbix Servers 3.4 源代码编译安装》 《Centos 7 Zabbix Agent 客户端源码编译安装配置》 1.配置 userparameter_mysql.conf Zabbix源码中包含了 userparameter_mysql.conf 配置文件,只需要将其拷贝到zabbix_agentd.conf.d目录下: $ find / -name userparameter_mysql.conf $ cd /tmp/zabbix-3.4.2/conf/zabbix_agentd/ $ cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ 2.修改 zabbix_agentd.conf 因为我们将userparameter_mysql.conf文件放在了zabbix_agentd.conf.d目录,所以需要取消下面注释,这样Zabbix Agent才能够加载此文件 $ vim /usr/local/zabbix/etc/zabbix_agentd.conf ... Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf ... 注意:若 systemctl Zabbix-Agent.service 单元文件中已经加载此配置文件/路径,此步骤可以忽略。 3.创建监控 MariaDB(MySQL) 用户信息 MariaDB [(none)]> GRANT SELECT ON … Continue reading Zabbix 3.4 监控 MariaDB(MySQL) 数据库性能