首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
39 阅读
2
【omv5安装教程二】N1盒子Armbian系统下,一条命令搞定Openmediavault(OMV5)安装
18 阅读
3
告别破解!用Aspose.Words实现Java版Word转PDF的实战指南
14 阅读
4
aris常用命令收集
12 阅读
5
【N1安装飞牛优化四】关闭不必要服务优化记录
12 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
588
篇文章
累计收到
9
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
autojs
搜索到
85
篇与
的结果
2024-06-04
Rsync+Inotify 实现数据同步,双向同步,单向同步
基本了解什么是rsync?与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!什么是inotify?Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。在上面章节中,我们讲到,rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题。rsync+inotify同步逻辑图环境准备服务器类型IP地址应用操作系统源服务器(数据源服务器),客户端192.168.130.161rsync inotify-tools 脚本centos7/redhat7目标服务器(备份服务器),服务端192.168.130.160rsynccentos7/redhat7重要提示关闭服务端和客户端的防护墙(不是必须,可以开放端口)、selinux(必须)。 #临时关闭 setenforce 0 #长久关闭---使用此方法。需要重启生效。所以可以先执行上面那句,再执行这句。就暂时可以不重启,先配置 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config如果未关闭,会提示错误:rsync: failed to set times on "." (in backup): Permission denied (13) rsync: recv_generator: failed to stat "ccc" (in backup): Permission denied (13)目标服务器(备份服务器),服务端一:安装rsycn在Centos上只要一句代码而已,其他系统自己找。yum install -y rsync二:添加配置文件参数。[root@server ~]# vim /etc/rsyncd.conf ##日志文件位置. log file = /var/log/rsyncd.log ##pid文件的存放位置 pidfile = /var/run/rsyncd.pid ##支持max connections参数的锁文件 lock file = /var/run/rsync.lock ##用户认证配置文件,用于保存用户名称和密码,必须手动创建 secrets file = /etc/rsync.pass #自定义同步资源名称。 [qingjun] #rsync服务端数据存放路径,客户端的数据将同步至此目录 path = /tmp/ comment = sync runtime from client #设置rsync运行权限为root uid = 0 #设置rsync运行权限为root gid = 0 #默认端口 port = 873 #表示出现错误忽略错误 ignore errors #默认为true,修改为no,增加对目录文件软连接的备份 use chroot = no #设置rsync服务端为读写权限 read only = no #不显示rsync服务端资源列表 list = no #最大连接数 max connections = 200 #设置超时时间 timeout = 600 #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开 auth users = admin #允许进行数据同步的源服务器IP地址,可以设置多个,用英文状态下逗号隔开 hosts allow = 192.168.0.0/24三:创建用户认证文件,设置文件权限为600。echo 'admin:123456' > /etc/rsync.pass chmod 600 /etc/rsync.pass 四:启动服务,设置开机自启。systemctl enable rsyncd systemctl start rsyncd五:验证是否监听端口ss -antl源服务器(数据源服务器),客户端一:安装rsycn在Centos上只要一句代码而已,其他系统自己找。yum install -y rsync二:配置epel源,安装inotify-tools服务。wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #################################### wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* ####################################### yum -y install inotify-tools二:创建认证密码文件,只需写密码,设置文件权限为600。echo '123456' > /etc/rsync.pass chmod 600 /etc/rsync.pass三:创建同步目录runtime。mkdir /runtime四:进入同步目录创建文件,开始同步。rsync -avH --port 873 --progress --delete /runtime admin@192.168.130.160::qingjun --password-file=/etc/rsync.pass 说明: rsync -avH --port 873 --progress --delete 源服务器需要同步到其他服务器的目录 admin@同步到哪个服务器IP::上面定义的同步模块 --password-file=/etc/rsync.pass五:服务端查看结果。六:自动同步- 1.写个脚本,给脚本设置开机启动执行。 #!/bin/bash host=192.168.130.160 src=/runtime des=qingjun password=/etc/rsync.pass user=admin inotifywait=/usr/bin/inotifywait $inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \ | while read files;do rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 done保存上面脚本到你想存放的目录,这边就存放到了opt目录下- 2. 后台执行脚本。nohup bash /opt/qingjun.sh &- 3. 添加到rc.local,实现开机自动启动这个脚本OK完美收工!
2024年06月04日
3 阅读
0 评论
0 点赞
2024-06-03
Linux 定时备份文件到另一台服务器
1. 需求用户要求将 Tomcat 的日志文件定时备份到另一台服务器。同事给我提供了一个写好的 java 框架,但实在不想给用户再维护另一个服务了,所以另寻他法。2. 问题使用 scp 等跨服务器传输命令时需要手动输入用户名的密码才可进行文件传输,定时任务会卡在这个节点上。3. 解决方案- 使用 crond 服务设置定时任务。 - 使用 sshpass 跳过手动输入密码过程。 - 使用 scp 命令传输文件。 3.1 crond 服务3.1.1 cron 表达式# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed3.1.2 crond 服务涉及命令# 编辑当前用户的cron表达式文件 crontab -e # 启动服务 /sbin/service crond start # 关闭服务 /sbin/service crond stop # 重启服务 /sbin/service crond restart # 重新载入配置 /sbin/service crond reload # 查看服务状态 service crond status3.2 sshpass + scp# 工具安装 yum install sshpass -y # 命令格式 # -p password 提供密码作为参数(安全性不明智) sshpass -p password scp -r -o StrictHostKeyChecking=no source_directory username@destination_ip:destination_directory # 示例 sshpass -p 123456 scp -r -o StrictHostKeyChecking=no /root/test.txt root@192.168.21.1:/root/其他问题你会发现执行命令之后无反应?可以添加下面代码可以添加-o StrictHostKeyChecking=no选项【表示远程连接时不提示是否输入yes/no】参考几种方法来实现scp拷贝时无需输入密码附上写的一键备份达梦数据库的脚本本地下载2024060308552755{cloud title="蓝奏网盘" type="lz" url="https://daimafengzi.lanzout.com/idnfL20q26gd" password=""/}{cloud title="天翼网盘(访问码:5qie)" type="default" url="https://cloud.189.cn/web/share?code=RjMrIjzMzMVf" password=""/}
2024年06月03日
1 阅读
0 评论
0 点赞
2024-05-11
银河麒麟V10操作系统Kylin Linux Advanced Server release V10 (Lance)版本 docker run时报错permission denied
项目场景:在新装的麒麟v10操作系统上新部署docker并运行项目的相关docker容器报错出现报错,怎么也跑不起来问题描述在麒麟v10操作系统上执行docker run 命令想要部署一个redis容器报错了docker run -d --name redis -p 6379:6379 --memory-swappiness=0 redis:6.2.6 redis-server --requirepass "Um9uZ2h1aUAxMzU3OQ==" 1e99cb77c62007f1a52aa97b92f1e3703c02c7924580eab14d5c7cc19d528a41 报错内容docker: Error response from daemon: failed to create shim task: OCI runtime create failed: container_linux.go:318: starting container process caused "permission denied": unknown.原因分析:docker:来自守护程序的错误响应:无法创建填充码任务:OCI 运行时创建失败:container_linux.go:318:启动容器进程导致“权限被拒绝”:未知。大概意思守护进程被进程被占用了解决方案:卸载Kylin Linux Advanced Server release V10 (Lance) 自带的Podman, 执行 yum remove podman 后,重新run即可正常运行。
2024年05月11日
1 阅读
0 评论
0 点赞
2024-04-29
CentOS 7系统离线安装gcc,gcc-c++,vim,perl
背景近段时间需要离线安装 nginx ,发现客户服务器在安装centos的时候没有安装【开发工具】在部署环境,安装操作系统的时候,如果安装了【开发工具】后面会少很多工作,不然后面安装很多软件都会少这少那的报错。联网的还好,不然会增加很多工作量。[blockquote2 name='洛维花']在这里我就遇到了。缺 gcc,gcc-c++,vim,perl[/tip]最终导致安装nginx不成功。于是就去找缺少的离线包前面提到,如果在装系统的时候勾选【开发工具】,系统安装完毕就会有这些工具。也就是说,系统的镜像里边肯定有离线包。其实就是放在Packages目录下,而且都是 rpm格式的软件包,4千多个!!centos7镜像下载>>>现在看看需要的把这些需要的离线包上传到 linux 任意目录下然后依次进入 gcc,gcc+,perl,vim执行安装命令 rpm -Uvh *.rpm --nodeps --force -U:升级软件,若未软件尚未安装,则安装软件。 -v:表示显示详细信息。 -h:以"#"号显示安装进度。 --force:强制安装 --nodeps:不考虑相依属性的关系 拓展知识: rpm 安装软件 无法解决软件包的依赖关系。 yum 命令安装时,自动解决相依性的问题。 本地安装yum 用 yum localinstall -y ./*
2024年04月29日
2 阅读
0 评论
0 点赞
2024-04-28
docker-compose安装
docker-compose官网存放到/usr/local/bin目录下,就不用再修改环境变量了cd /usr/local/bin如果直接下载过慢,建议用其它方式下载再上传wget https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-x86_64修改包名mv /usr/local/bin/docker-compose-linux-x86_64 /usr/local/bin/docker-compose授予执行权限chmod +x /usr/local/bin/docker-compose输入以下命令docker-compose --version返回软件版本即为安装正常
2024年04月28日
1 阅读
0 评论
0 点赞
2024-04-24
记录一次mysql启动报错mysqld: File ‘./binlog.index‘ not found (OS errno 13 - Permission denied)
记录一次mysql启动报错mysqld: File ‘./binlog.index‘ not found (OS errno 13 - Permission denied)查看日志,查看报错问题[root@localhost ~]# tail -n50 /var/log/mysqld.log发现是权限问题对datadir目录赋予mysql权限# 查看datadir [root@localhost ~]# grep 'datadir' /etc/my.cnf datadir=/data/mysql [root@localhost ~]# chown -R mysql:mysql /data/mysql关闭selinux# 临时生效 [root@localhost ~]# setenforce 0 # 永久生效,需要重启系统 [root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config [root@localhost ~]# reboot再次重启mysql成功[root@localhost ~]# systemctl start mysqld
2024年04月24日
1 阅读
0 评论
0 点赞
2024-04-08
(2024最新)IntelliJ IDEA 破解激活2099年激活码教程(含win+mac)
本文讲的是2024最新IntelliJ IDEA Jetbrains全家桶永久pojie激活教程。以下软件均可使用此方法激活。[blockquote2 name='洛维花']已实现激活到2099年,之前的激活到2025过期的,可以替换此文章的激活工具和激活码。[/tip]windows激活IDEA先去IDE官方下载你需要的软件,这里以IDEA为例,因为此方式适用于所有全家桶激活。这里以最新版2023.3.4为例,此方式适用于所有版本,并支持新版。下载下来后正常安装勾选这两个就可以了勾选运行,点击完成激活工具下载下载下来后,名字是jetbra记得先解压jetbra.zip,打开scripts目录双击运行install-all-user.vbs点击确定,然后等他弹第二个框,第一次运行时间会比较久,耐心等待出现这个done,说明成功,如果5分钟还没出,重新再点下install-all-user.vbs打开idea,激活码放在一起的,全选复制粘贴,输入激活码即可mac、linux等激活IDEA下载并安装打开scripts目录,为了方便,点击 显示》》》显示路径栏下方路径,右键scripts目录,弹开框,点击在终端打开运行命令,sudo bash install.sh再打开idea,激活码放在一起的,全选复制粘贴,输入激活码激活成功,2099年
2024年04月08日
2 阅读
0 评论
0 点赞
2023-11-24
【N1和Armbian】七、如何使用docker搭建DDNS-GO教程
docker安装ddns-godocker pull jeessy/ddns-go docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go访问Web面板http://IP:9876设置选择,CloudFlare,然后点击蓝色的“创建令牌->编辑区域DNS(使用模板)”跳转到cloudflare token配置页面。(不要偷懒,不要搞错了api弄上去是没用的)最终会得到一个token,然后将token填写到管理页面的Token输入框内。ipv4配置选择启用,然后在Domains填写自己想更新ip的域名,也可以填多个。ipv6配置这里根据自己家网络能获取到ipv6,以及是否要开放ipv6访问来决定。安全配置这里最好禁用公网访问,只让通过局域网或者当前主机进行访问,来提高安全性用户名+密码也配上,增加安全性Webhook可以用来增加一些额外的自定义事件,比如钉钉、飞书的通知保存保存后,ddns就会发起一次cloudflare接口请求,比较ip是否发生变化,页面右侧会有比较日志。至此,ddns的配置就完成了。为了测试,此时可以把主机关机,然后再开机,让其进行一次自动拨号获取最新的公网ip,然后自动更新域名解析。因为docker服务是开机启动的,并且容器也配置了–restart=always参数,会随docker启动后自动启动,所以ddns-go检测到ip变化会及时更新。
2023年11月24日
1 阅读
0 评论
0 点赞
1
...
5
6
7
...
11