rsync

Sersync+Rsync实现触发式文件同步

天大地大妈咪最大 提交于 2021-01-05 08:47:02
背景 通常我们在服务器上使用rsync加上crontab来定时地完成一些同步、备份文件的任务。随着业务和应用需求的不断扩大、实时性要求越来越高。一般rsync是通过校验所有文件后,进行差量同步,如果文件量十分庞大,那么rsync进行校验的过程也是十分耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过crontab方式进行触 发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。而Sersync+Rsync的组合能够较好地解决这种问题。 Sersync介绍 sersync是使用c++编写,而且对linux系统文 件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。 因此更快。 相比较上面两个项目,sersync配置起来很简单,其中bin目录下 已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。 另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状 态。 本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则 每10个小时对同步失败的文件重新同步。

jenkins自动化工具使用教程(转)

妖精的绣舞 提交于 2021-01-03 14:18:49
自动化构建、测试、部署、代码检测越来越重要。主要有一下几点原因 企业做大,项目变多,多端支持(web,h5,小程序等) 微服务提倡高内聚低耦合,项目因拆分变多 DevOps自动化运维流行 集群化,高可用部署方案 避免人工操作出现的错误 集成管理系统,实现提交发布、发布审批、发布等UI可视化操作 等等原因,学习使用jenkins实现自动化作业非常有必要。这是我学习过程中整理的资料,分享给大家。 欢迎向我推荐更好的资料和讨论关于jenkins的问题。 目录 一、 安装 1) Jenkins环境 2) Jenkins安装插件因网络问题报错处理方案 3) Jenkins在url中关闭和重启. 4) 如何将Jenkins集成到其他系统 二、 常见设置 1) Jenkins 英文切换成中文 2) Jenkins 中文乱码 3) 环境变量、脚本变量使用 4) 查看job执行时的历史环境变量 5) 去掉JENKINS的首页警告 6) 定时构建 三、 常用工具cli 1) git 2) 脚本 a) shell b) bat 3) xcopy 4) 7zip(7z) 四、 安全设置 1) 常规安全设置 2) 用户权限管理 五、 Dotnet 程序编译发布 1) 环境准备 2) Msbuild插件 + webdeploy 3) 使用msbuild命令行 六、 备份、回滚 1) jenkins 配置

八周三次课(1月31日)

故事扮演 提交于 2021-01-01 05:41:47
八周三次课(1月31日) 10.32/10.33 rsync通过服务同步 编辑配置文件 /etc/rsyncd.conf 启动服务rsync --daemon vi /etc/rsyncd.conf 测试方便改成了path=/etc/rsync,然后创建这个文件并赋予权限 rsync -avP /tmp/aming.txt 192.168.133.130::test/aming-02.txt ::后面跟模块名字,即配置文件中方括号内容 检查问题 ping telnet 检查iptables iptables -nvL 停掉firewalld iptables -nvL 再检查对方机器的iptables,停掉firewalld ctrl+u>quit退出telnet 成功传输,第一次命令需要密码,去对方配置文件注释掉密码,第二次直接传输 拉文件过来 配置文件详解 --port 自动列出对方模块名 list改为false则看不到模块名 指定传输用户,验证密码文件 客户端创建密码文件,直接利用密码文件传输,不用输入密码 ip限制,允许哪些ip来连 10.34 linux系统日志 总日志 /var/log/messages 日志过大,系统自动切割机制 logrotate dmesg 硬件相关日志,保存在内存中 dmesg -c 清空日志 dmesg /var/log/dmesg

一键实现自动化部署(灰度发布)实践

▼魔方 西西 提交于 2020-12-30 11:36:15
在过去几年的DevOps的浪潮中,自动化、持续集成这两个概念早已深入人心(互联网技术人)。比尔盖茨先生曾经都说过:“任何技术在一个业务中使用的第一条规则就是,将自动化应用到一个高效的操作上将会放大高效。第二条就是自动化应用到一个低效操作上,则放大了低效率。” 自动化部署也逐渐成为各中小型企业追求的方向,那么,今天民工哥就自动化部署的概述、自动化部署的工具、自动化部署的流程、自动化部署实践等4个方面,与大家一同来讨论、交流一下关于中小企业自动部署的问题。 1、自动化部署概述 1.1 什么是自动化部署 一句简单的话概括:部署的过程中所有的操作全部自动化,无需人工手工干预。 1.2 自动部署的好处 传统的部署方式如下: 运维人员手工使用Scp、Xftp等方式来传输数据 手工登录服务器执行git pull 、svn update等命令进行更新代码的操作 开发人员手工编译打包,然后通过内网传输给运维人员 运维人员通过rz上传的方式上传到目标服务器,然后,执行重命名原包、拷贝新包到目标目录,再执行服务应用重启命令完成整个部署过程 看似非常简单,也不是很麻烦,但是一旦项目多,部署频繁,这种情况下就会大大降低工作效率。民工哥之前工作中就有这类体验,公司的活动类项目高达100+,很多都是需要快速上线及下线、或者更新的,手工部署真的累。 传统的部署方式有以下的缺点: 整个过程都需要人员参与

shell 检查是否是root用户

喜欢而已 提交于 2020-12-26 08:47:51
[root@Rsync day1]# vi checkroot.sh #!/bin/bash #检查是否是root用户 if [ $UID -ne 0 ];then ehco Non root user. Please run as root. else echo "Root user" fi 保存退出 [root@Rsync day1]# bash checkroot.sh Root user [root@Rsync day1]# 来源: oschina 链接: https://my.oschina.net/u/4399905/blog/4841631

Nginx负载均衡权重,ip_hash

依然范特西╮ 提交于 2020-12-21 02:32:46
nginx 为后端web服务器( apache ,nginx, tomcat ,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享, 数据库 共享,session共享问题.文件共享可以使用nfs,共享存储(fc,ip存储都行)+redhat GFS集群文件系 统,rsync+inotify文件同步等.小规模的集群中使用更多的是nfs.对于内容管理系统,单台进行发布信息,向多台同步使用rsync+inotify就是个不错的选择. 小规模集群,单台高性能 数据库 (如志强双四核,32/64/128G内存)即可,大规模集群可能要考虑数据库集群了,可以使用mysql官方提供的集群软件,也 可以使用keepalived+lvs读写分离做Mysql集群. session共享问题是一个大问题,如果nginx采用ip_hash的轮询方法,每个ip在一定时间内会被固定的后端服务器,这样我们不用解决session共享问题.反之, 一个ip的请求被轮询分发到多台服务器上,就要解决session共享的问题,可以使用nfs共享session,把session写入mysql或者memcache等方法,当机器规模比较大 时,一般使用把session写入memcache里面. 后端的web服务器如何配置我们这里就不讨论了,后端服务器可能是apache,nginx,tomcat

两台电脑之间快速传输大量文件的方法,系统均是linux

怎甘沉沦 提交于 2020-12-18 18:22:52
背景 本人平时的工作有一部分是编译Android系统,Android官方推荐的内存配置是16G,旧电脑的内存是16G,完整编译一次LineageOS 14.1(对应的Android版本是7.1.1),大概需要两个小时左右,编译LineageOS 17.1(对应的Android版本是10),大概需要4个小时,而且编译途中,还不能干别的事,否则会导致资源紧张而编译失败,因此需要升级一下硬件配置。 环境 硬件,由ThinkPad T580 升级到 外星人Area 51M顶配版。 系统,两个都是ArchLinux。 文件总大小有600G左右。 文件复制的过程 在旧电脑安装了Nginx,准备用Nginx作为服务器,新电脑使用Http从旧电脑下载文件,达到迁移文件的目的,这个速度只有5M左右,原因可能是两台电脑都使用内网WIFI,而路由器i的内网转发限制到了很低,应该是5M,这个方案放弃。 在旧电脑安装vsftpd,新电脑使用ftp下载文件,但是这个方案的速度也是只有5M,原因同上,放弃。 使用网线将两台电脑直连(网线是6类,水晶头是超5类),旧电脑设置ip相关参数,ip地址: 192.168.1.1,子网掩码: 255.255.255.0,网关: 192.168.1.1,新电脑ip地址: 192.168.1.2,子网掩码和网关同旧电脑一致,然后使用rsync从旧电脑给新电脑同步数据

干货教程:Linux 系统的备份怎么恢复

巧了我就是萌 提交于 2020-12-18 07:32:27
tar 命令 副本(本机备份整个系统,以后还原还是还原到本机) 注意根目录下要有充足的可用空间用于备份。 cd / #tar.gz格式 tar cvpzf system_backup.tar.gz / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.gz --exclude=/mnt --exclude=/sys #tar.bz2格式 tar cvpjf system_backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.bz2 --exclude=/mnt --exclude=/sys # 恢复系统 cd / #上传文件到根目录下 tar xvpfz system_backup.tar.gz -C / 或 tar xvpfj system_backup.tar.bz2 -C / #创建备份时排除的目录 mkdir proc mkdir lost+found mkdir mnt mkdir sys /proc 权限:文件所有者:root群组:root 所有者:读取 执行 群组:读取 执行 其它:读取 执行 /lost+found 权限:文件所有者:root群组:root 所有者:读取

为什么黑客大牛都去腾讯?

家住魔仙堡 提交于 2020-12-17 00:56:28
2007年,乔老爷子刚从口袋里掏出第一代 iPhone,“微信”还不存在,也没人想过手机扫码就能付钱。 那是互联网“上古时代”,喜欢上网的人可能还被称为“网虫”。 就是在那一年,中国网虫们有一份共同记忆:某天打开电脑,桌面上的图标都变成了魔性又狡黠的熊猫,手擎三炷香。作为未经人事的小奶狗,至少当时我是被这幅图景吓坏了。 这就是“熊猫烧香”病毒。 这个病毒着实影响了一些人的生活轨迹,比如当年的黑客 Killer。 当时 Killer 正在创业,做一款名为“超级巡警”的杀毒软件,这件事自然撞到他的枪口。他在当天午后3点拿到这个病毒样本,晚上12点左右就上线了针对“熊猫烧香”的专杀工具(中间他还悠哉地吃了晚饭)。熊猫烧香成了“爆款”,他的超级巡警随即也被“哄抢”,以至于下载服务器都被挤瘫痪了。 Killer 没有想到,自己毫无防备地见证并轻轻改写了中国网络安全的历史。他同样没有预料,多年之后,自己会加入中国最大的互联网公司腾讯,成为七大安全实验室之一“云鼎实验室”的掌门人。 在我看来,这并不是偶然的人生际遇,而是一种必然。顶级网络安全大牛和腾讯公司这两个看上去气质迥异的词,最终会紧紧地走到一起。 为了更清楚地表达这种必然性,我想先从最近十年的“安全战争”说起。 一、十年的安全战争和 BAT 的角色 客观地说,熊猫烧香的技术并不精巧,造成的实际损失也未必很大

jenkins结合httprunner配置实现自动化测试

廉价感情. 提交于 2020-12-16 13:57:13
jenkins结合httprunner配置实现自动化测试 自动化测试思路: jenkins发布代码到预发布环境 –> 触发自动化测试预发布环境 à 返回测试结:如果测试通过则将代码推送到生产环境目录,测试没有通过则不发布代码到生产环境,同时发送邮件和测试报告 整体步骤: 1.创建一个job :MG.backend.chinasoft.me 使用jenkins配合git和rsync发布代码到预发布环境中,预发布环境和生产环境越接近越好 我们本次发布是使用同一台服务器 nginx 使用不同域名代理不同目录的方式来区分灰度和生产环境 生产环境目录:/data/www/vhosts/chinasoft.me 灰度目录:/data/www/vhosts/chinasoft.me.uat 生产的域名: https://api.chinasoft.me 灰度域名: https://api-uat.chinasoft.me 2.创建另外一个自动化测试的job,该job执行的时机是在 MG.backend.chinasoft.me 执行后触发 jenkins创建灰度发布job 配置git拉取代码 Build执行的脚本 Shell脚本: echo $WORKSPACE git show ##定义变量 dir_name=bak.$(date +%Y-%m-%d) project_dir=/data