Author: hotddos
-
定时全量备份 mysql 数据库并压缩
当需要全量冷备份数据库的时候,我们一般手动使用图新界面工具如:navicat,或者手动执行mysqldump备份命令,虽然这样也可以但是没有自动周期化执行,要是忘记了备份的时候突然数据库出问题恢复数据可能就不够及时和完整。我们可以利用 linux 系统自带的定时任务工具cron定时调用mysqldump命令备份数据库sql 脚本,再利用 shell 脚本调用7zip( 7zip 是压缩率最高的,测试可以压缩到十分之一大小)把 sql 脚本文件压缩成压缩包并设置一个字符串作为压缩文件的密码,然后还可以定时清理以前的老压缩文件节省空间。 说明:所有操作是在Centos系统下运行的,其它 linux 发行版可能有命令的略微差别。 1.首先需要安装 7zip 安装完成后的 7zip 程序的命令是:7za, 可以使用:7za -version查看7zip的版本。 2.编写shell脚本:mysqlBkTask.sh 保存在用户abc的用户根目录下:/home/abc/mysqlBkTask.sh。 说明:需要注意我这里mysql数据本地 root 账号访问没有密码, mydatabase为需要备份的数据库名,如果要备份所有数据库把数据库名的地方改成参数:–all-databases 3.使用系统定时任务cron来定时执行我们的备份shell脚本: 前面的 mysqlBkTask.sh文件是我们需要定时执行的脚本,假如我们需要每天凌晨 4 点 15 分执行备份任务。输入crontab -e打开编辑定时任务,我们增加以下内容: 然后按住ctrl+c后输入:wq 保存并退出。 也可以再输入: crontab -l查看任务列表,需要查看定时任务执行日志可以输入:tail -f /var/log/cron
-
Windows Server配置openSsh
对于经常用惯linux做为线上项目运行环境的人来说,突然给弄一个windows生产环境会觉得一下以前做的可持续交付没办法用了,这个时候可以使用windows上安装openssh来实现使用ssh管理windows服务器。 windows服务器安装openssh微软官方介绍文章: https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse 但是微软官方的文章我测试在windows server2019上有问题,我才用直接安装openssh安装的方式。 1首先去github下载openssh安装包 https://github.com/PowerShell/Win32-OpenSSH/releases 这里我们选择自己对应操作系统的32位或者64位安装包 2解压安装 解压后如下: 在目录下运行: 出现如下界面安装成功: 3启动服务 成功如图所示
-
Fedora 自带虚拟机Boxes(盒子)安装Ubuntu磁盘扩容失败的解决方法
扩容到200G,但是系统中使用df -h查看还是只有扩容前的150G 这个时候需要使用如下命令安装一个磁盘工具:gparted 然后使用root权限打开它 这个时候如果直接调整大小会出报错:cannot resize read-only file system 这个时候需要在要调整的分区右键选择信息菜单,然后在状态一列可以看到:挂载于 /, /var/snap/firefox/common/host-hunspell。 需要执行一下三个命令,重新挂载读写权限: 然后再去需要调整大小的分区右键菜单选择调整大小/移动菜单,拖动顶部的进度条到底,最后点调整大小按钮保存操作,最后一步点顶部菜单的绿色带勾按钮应用全部操作。
-
Linux使用Samba配置NAS服务器
当你的电脑磁盘空间不足时,除了物理扩容增加硬盘外,其实还可以挂载网络存储。一般常用的个人存储服务可能大家听的比较多的是群晖,其实如果你有linux服务器自己搭建一个NAS服务器也是可以的,下面将介绍如何使用linux服务器搭建一个个人NAS服务。 这里先说明几个会影响到你网盘访问速度的问题: 1.磁盘读写速度: 你的服务器磁盘如果是Sata接口的,受限于sata3.0的最高理论速度6Gb/s的传输速度,你的磁盘读写速度最快不超过6000 000 000 /8bit /1024 /1024 约等于714MB/s。 一般7200转的机械硬盘其实读写速度也就90-190MB/s, 如果你的磁盘是ssd(固态硬盘)使用的是sata接口也不会超过接口的理论值,一般的ssd也大概在500MB/s左右。 如果你的服务器是支持NVMe M.2接口的,那么你的固态硬盘读写速度最快将达到3500MB/S。 M.2接口从物理形态上,常见的是B key 和M key这两种形态。 2.网速的问题: 这里我们区分一下外网和内网来分析,内网就是你路由器到你家里所有设备组成的一个网络,路由器不进行拨号上网(大部分人是在光猫中拨号上网的)你就是一个纯内网环境,在不连接到外网的时候你输入服务器的内网ip(例如:192.168.0.33)也是可以访问nas服务的。外网就是你路由器拨号后连接到广域网,但是虽然你连接到了广域网你仍然无法在内网以外的环境访问它,因为你没有一个公网访问ip。这里我们如果有需要外网访问的需求话就需要联系运营商申请公网访问,或者使用内网穿透软件,例如花生壳、或者在公网服务器使用frp服务来做内网穿透。 内网速度:受限于您的家庭网络预埋网线的等级:五类线(CAT5)100Mbps、超五类线(CAT5e)1000Mbps、六类线(CAT6)1000Mbps/10Gbps、超六类线(CAT6A)10Gbps、七类线(CAT7)10Gbps。当然如果您使用的光纤传输就不用考虑线材对网速的影响,一般都是可以直接上10Gps(也就是万兆)的。也受限于您的路由器的速度,如果您的路由器下面有交换机也受限于交换机的速度,一般有百兆路由器/交换机、千兆路由器/交换机、万兆路由器/交换机。 外网速度: 首先于运营商的上行速度,一般家庭百兆或者千兆带宽来说基本都在3MB/s(30Mpbs)左右。如果要更大的外网上行带宽,就得向运营商申请专线IP,可能一个10MB/s上下行对等专线IP(也是固定IP)大概在RMB3000元一个月,具体资费要咨询当地运营商。 然后就是你外网的访问方式,如果是公网IP(不是固定IP)大概就是在3MB/s左右上行,如果是专线IP(固定IP)大概就是10MB/s。如果是使用第三方服务搭建的内网穿透,那就还要受限于第三方转发服务器的带宽。 网卡的问题: 如果您使用的有线上网,那么现在板载的基本都是千兆网口了,只要您选择六类网线基本都可以达到稳定千兆网速。如果要追求更高速度您可以增加扩展网卡,扩展网卡分光口(sfp)网卡和电口(Rj45)网卡。 如果您使用的无线上网(wifi),那么尽量使用wifi6速度可以达到1000Mbps。 总结一下:就是如果你想最快的NAS内网访问速度,那就是直接上万兆交换机/千兆路由器,然后网线如果是光纤就选择光口(sfp)接口的交换机,如果是电口(也就是我们普通的8芯网线)就选择RJ45接口的交换机/路由器。如果是光口的话是最理想的,因为不用担心自己网线达不到品级也影响速度。 进入正题,开始配置samba服务 环境说明: 服务器:CentOs 7.9 1安装samba 2.创建共享目录: 3.修改配置文件: 配置文件说明: 4.增加访问用户: 配置一个用户:zhangsan来访问 注意:如果添加账号失败,可以先添加一个系统账户然后再执行上面的命令 5.重启服务 使用下面命令来重启服务,使上面的配置生效 6.其它相关命令 检查samba服务运行状态 启动/停止smbd服务 各操作系统加载网盘 windows在文件管理器中顶部菜单中选择:映射网络驱动器,在弹出的窗口中文件夹中输入您的IP/域名地址,然后会提示您输入账号密码,验证成功后就会出现文章开头的网络位置中的网盘了。 mac电脑打开访达,在顶部菜单中选择:前往->连接服务器,在地址栏中输入例如:smb://192.168.0.189然后点连接就可以打开网盘了。
-
mysql单台服务器启动多实例
mysql版本: mysql5.7 操作系统: Ubuntu20.4 当前登录用户:zhangsan 说明: 使用mysqld_multi实现多实例启动,这里我们分别启动在3307和3308端口(可以先用”lsof -i:3307″来查看端口是否已经被占用),存储位置在当前用户的:/home/zhangsan/mysql/db1、/home/zhangsan/mysql/db2。 当前已有一个mysql安装运行在端口3306,默认数据库保存在:/var/lib/mysql(可查看/etc/mysql/mysql.conf.d/mysqld.cnf文件中的配置)。 1.创建多实例启动的配置文件mysqlmulti.conf 首先在进入当前用户目录下创建 mysqlmulti.conf 的配置文件: 输入如下配置内容: 我们刚创建的配置文件拥有者为我们登录的用户,需要使用chown命令修改文件的拥有者为mysql用户: 2.给数据库目录增加权限 修改数据库目录权限: 修改:/etc/apparmor.d/usr.sbin.mysqld文件, 在文件末尾增加我们设置的两个保存mysql数据库文件的路径。 注意:该文件最后一行是大括号结尾,要放到括号里面。 然后使用命令来重启apparmor: 初始化数据库目录: 3.创建日志文件并授权 创建空的日志文件: 授权给mysql用户: 4.使用mysqld_multi命令启动多个实例 5.验证mysql安装、启动和停止数据 数据库启动后没有密码的,我们用空密码登录数据: 数据库 启动、停止、重启、查看状态: 使用:sudo mysqld_multi –defaults-file=/home/zhangsan/mysqlmulti.conf –no-log start | stop| reload | report 3307 | 3308 仅示范启动3307端口数据库命令: 说明:如果最后不加端口就是针对 mysqlmulti.conf 配置文件中所有数据库批量做操作。
-
MySql配置主从同步
本次使用mysql5.7版本,两台服务器均在公网。其中一台是线上生产环境,每次全量备份sql文件和费时和重复。那我们把线上生产环境的数据库设置成主库,线下本地数据库设置成从库,那么就只需要利用mysql的主从同步来做增量更新了,然后本地数据库再利用mysqldump备份sql文件并压缩成tar.gz文件存储到磁盘或者nas上就效率很高了。 这里我们假设 主库为: 主机地址:29.22.33.44 mysql端口:3306 从库: 主机地址:29.22.33.45 mysql端口:3306 注意:必须要现在主库上开启binlong,然后创建一个从库访问的账号,最后主库需要锁数据库(禁止新的数据写入)!!! 一.在主库中配置步骤如下: 1.配置my.cnf配置文件,使其启用bin-log日志文件: 首先关闭mysql数据库 如果是CentOs系统: 如果是Ubuntu系统: 然后编辑mysql的配置文件my.cnf在mysqld中增加如下内容(CentOs默认在/etc/my.cn,Ubuntu默认在/etc/mysql/mysql.conf.d/mysqld.cnf): 2.配置用来给从库远程访问的账号: 注意这里要先启动mysql数据库: 如果是CentOs系统: 如果是Ubuntu系统: 登录mysql数据库(执行:mysql -uroot -p,然后输入密码)操作如下: 说明:如果从库的ip地址固定,可以把%修改成ip地址。 3.锁住数据库的写操作: 4.获取二进制日志的信息: 5.把当前数据库中已有数据全部备份出来到一个压缩文件(方便下载到本地数据库导入): 说明:/var/lib/mysql/mysql.sock这个请到my.cnf文件中查看具体路径,不同linux系统有不同。 注意:第4步的mysql登录会话不要关闭,我们这里新开一个会话来导出sql(不然前面的binlog position会失效) 此处的root为账号,-p后面单引号中的为对应账号密码。 备份文件将保存在:/home/abc/backup/文件夹下, 请提前用命令:mkdir /home/abc/backup/ 创建好。 2.在从库中配置如下: 1.mysql的配置文件my.cnf在mysqld中增加如下内容(CentOs默认在/etc/my.cn,Ubuntu默认在/etc/mysql/mysql.conf.d/mysqld.cnf): 2.重启mysql数据库: 如果是CentOs系统: 如果是Ubuntu系统: 3.导入主库备份的sql脚本(从主库下载的备份sql文件是压缩的tar.gz压缩文件,需要先解压): 说明:/var/lib/mysql/mysql.sock这个请到my.cnf文件中查看具体路径,不同linux系统有不同。 mysql -uroot -p’123456′ -S /var/lib/mysql/mysql.sock < /Users/zhangsan/Downloads/mysql_bak.2022-10-14.sql 4.配置主库连接信息: 使用mysql -uroot -p,然后输入密码登录数据库然后执行如下指令: 说明:MASTER_HOST 值是主库ip地址,MASTER_USER是我们在主库上给从库分配的远程访问账号,MASTER_PASSWORD是对应密码,MASTER_LOG_FILE就是主库上的二进制日志文件名,MASTER_LOG_POS是标记位置。 5.启动同步:…
-
大日志文件的切割查看法
我们经常会遇到一些很大的文本文件(例如tomcat的日志文件 catalina.out),这个时候使用文本查看工具查看的时候经常会卡很久没有响应,或者文本查看工具直接崩溃,这个时候我们就需要对文件进行切割。下面给大家演示如何对文件进行切割查,以及中间需要用到的相关工具命令: 1.需要用到的相关命令(仅适用于mac、linux类系统): wc 用来显示文件的字数、行数。 命令使用参考链接:菜鸟教程-WC命令 split 用来切分文件。命令使用参考链接:菜鸟教程-Split命令 2.查看文件行数和切割文件 查看行数和字节数: 这里我这个:catalina.out文件是约19G大小,我们有两种切割方式:1按行数切割。2按文件大小切割。 按行数切割: 此文件有19G,我们至少要分隔成20个文件,即每个文件1G大小,这样单独查看每个文件的时候文本查看工具才能内存充足的查看而不崩溃。那么算法就是:34342820 / 20 = 1717141 行 按文件大小切割: 此文件有19G,我们至少要分隔成20个文件,即每个文件1G大小,这样单独查看每个文件的时候文本查看工具才能内存充足的查看而不崩溃。那么算法就是:19G / 20 大约每个文件1G左右(不够1G没关系) 完
-
CentOS7 64位下MySQL5.7安装与配置
1、配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ 或者直接在服务器上用wget下载rpm安装包 2安装mysql源 3检查mysql源是否安装成功 可以修改vim /etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。 4安装MySQL 5启动MySQL服务 然后输入如下命令查看服务状态 6配置开机启动 7修改root账号本地登录密码 mysql安装完成之后,在/var/log/mysqld.log文件中生成了一个root账号的默认密码。可通过以下命令查看这个密码: 8自定义root账号密码 或者 然后输入如下命令即使生效以上操作: