ubuntu 使用 rsync 的 SSH 方式同步备份远程WEB服务器
ubuntu 20.04 自带 rsync ,对于 WEB 服务器这种更新频率不高的情况,直接使用定时同步复制远程服务器的方法,比较直接和简单!
$ rsync --version
rsync version 3.1.3 protocol version 31
参考:
Ubuntu20.04中的rsync命令
本次主要使用 SSH 方式来完成,抄录一下参考文章
5.1 SSH 协议
rsync 除了支持本地两个目录之间的同步,也支持远程同步。它可以将本地内容,同步到远程服务器。rsync -av source/ username@remote_host:destination
也可以将远程内容同步到本地。rsync -av username@remote_host:source/ destination
rsync 默认使用 SSH 进行远程登录和数据传输。由于早期 rsync 不使用 SSH 协议,需要用-e参数指定协议,后来才改的。所以,下面-e ssh可以省略。rsync -av -e ssh source/ user@remote_host:/destination
但是,如果 ssh 命令有附加的参数,则必须使用-e参数指定所要执行的 SSH 命令。rsync -av -e 'ssh -p 2234' source/ user@remote_host:/destination
上面命令中,-e参数指定 SSH 使用2234端口。
环境
-
远程
ubuntu 2004 server
192.168.0.196
nginx/1.18.0 (Ubuntu) -
本地
ubuntu 2004 server
192.168.0.194
nginx/1.18.0 (Ubuntu)
既然作为同步备份,建议本地和远程设置同样环境,使用同样user!
操作和测试
-
将远程(192.168.0.196)服务器上 /var/www 同步复制到本机~/bak-www-196 目录
注意 /var/www 和 /var/www/ 不一样
/var/www :会创建 www 目录,并复制 www目录下的文件和下级子目录
/var/www/:只复制 www 目录下的文件和目录,不会创建 www 目录
为了简化,远程和本地使用相同的用户,如果用户名不一样,需要加上远程用户名( 假设远程用户名是 user)
例如:$ rsync -av user@192.168.0.196:/var/www ~/bak-www-196
$ rsync -av 192.168.0.196:/var/www ~/bak-www-196 -
同理,同步备份网站配置目录
$ rsync -av 192.168.0.196:/etc/nginx/sites-available ~/bak-www-196$ rsync -av 192.168.0.196:/etc/nginx/sites-enabled ~/bak-www-196
配置密钥方式 SSH
-
在本地(192.168.1.194)
ssh-keygen
简单起见,一路回车!passphrase 也是空着! -
上传本地(192.168.1.194) 自己的公钥到 远程(192.168.1.196)
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.196 -
在远程(192.168.1.196)修改 sshd_config ,开启 PubkeyAuthentication
设置定时任务
假设每天晚上 23 点 10 分,执行 rsync -av 192.168.0.196:/var/www ~/bak-www-196 …
如果愿意,自行编写 shell 脚本
假设ssh 端口已经改变为 22222
写法要加上 -e ‘ssh -p 22222’
$ rsync -av -e ‘ssh -p 22222’ 192.168.0.196:/var/www ~/bak-www-196
$ crontab -e
...
# m h dom mon dow command
10 23 * * * rsync -av -e 'ssh -p 22222' 192.168.0.196:/var/www ~/bak-www-196 >/dev/null 2>&1
...
查看确认
$ crontab -l
设置 log
$ cd /etc/rsyslog.d/$ sudo vim 50-default.conf 解除注释 cron.* /var/log/cron.log$ sudo systemctl restart cron$ sudo systemctl status cron
查看 log
$ less /var/log/cron.log
rsync 和 scp 区别
rsync 可以完成增量备份 , scp 每次都完全复制
实际操作一次,会发现 scp 每次都全部 cp
$ scp -r 192.168.0.196:/var/www ~/bak-www-196
196-7 100% 7 10.4KB/s 00:00
194-3 100% 4 0.0KB/s 00:00
......
196-2 100% 7 11.7KB/s 00:00
1.txt 100% 4 6.7KB/s 00:00
index.nginx-debian.html 100% 612 2.9KB/s 00:00
第一次,rsync 也会全部复制
$ rsync -av 192.168.0.196:/var/www ~/bak-www-196
receiving incremental file list
......
www/html/test/test1/test1.txt
www/html/test/test1/test2/test2sent 358 bytes received 1,032 bytes 556.00 bytes/sec
total size is 683 speedup is 0.49
重复一次,不会再次复制
$ rsync -av 192.168.0.196:/var/www ~/bak-www-196
receiving incremental file listsent 29 bytes received 473 bytes 334.67 bytes/sec
total size is 683 speedup is 1.36
相关文章:
ubuntu 使用 rsync 的 SSH 方式同步备份远程WEB服务器
ubuntu 20.04 自带 rsync ,对于 WEB 服务器这种更新频率不高的情况,直接使用定时同步复制远程服务器的方法,比较直接和简单! $ rsync --version rsync version 3.1.3 protocol version 31 参考: Ubuntu20.04中的rsyn…...
机器学习 | Python实现NARX模型预测控制
机器学习 | Python实现NARX模型预测控制 目录 机器学习 | Python实现NARX模型预测控制效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 机器学习 | Python实现NARX模型预测控制 研究内容 贝叶斯黑盒模型预测控制,基于具有外源输入的非线性自回归模型的预期自由能最…...
M5ATOMS3基础03给ROS1发一个问候(rosserial)
引出问题 关于之前2020年的博客: 01. ESP8266和ROS调试一些问题汇总 02. ESP8266和ESP32配置(需使用ROS1和ROS2) 效果展示 使用M5ATOMS3与ROS1(kinetic,melodic,noetic)版本通信比较通用的是…...
基于Vue3实现鼠标按下某个元素进行移动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
其原理主要是利用JavaScript中的鼠标事件来控制CSS样式。大致就是监听某个DOM元素的鼠标按下事件,以及按下之后的移动事件和松开事件。在鼠标按下且移动过程中,可实时获得鼠标的X轴坐标的值,通过简单计算,可计算出目标元素的宽度&…...
使用MyBatis(2)
目录 一、定义接口、实体类、创建XML文件实现接口) 二、MyBatis的增删改查 🍅1、MyBatis传递参数查询 🎈写法一 🎈写法二 🎈两种方式的区别 🍅2、删除操作 🍅3、根据id修改用户名 &#x…...
【FPGA/D6】
2023年7月25日 VGA控制器 视频23notecodetb 条件编译error时序图保存与读取??RGBTFT显示屏 视频24PPI未分配的引脚或电平的解决方法 VGA控制器 视频23 note MCU单片机 VGA显示实时采集图像 行消隐/行同步/场同步/场消隐 CRT:阴极射线管 640…...
【WebGIS实例】(10)Cesium开场效果(场景、相机旋转,自定义图片底图)
效果 漫游效果视频: 【WebGIS实例】(10)Cesium开场效果(场景、相机 点击鼠标后将停止旋转并正常加载影像底图: 代码 可以直接看代码,注释写得应该比较清楚了: /** Date: 2023-07-28 16:21…...
【Spring】IOC的原理
一、 IOC 的概念 Spring 的 IOC ,即控制反转,所谓控制反转 —— 本来管理业务对象(bean)的操作是由我们程序员去做的,但是有了 Spring 核心容器后,这些 Bean 对象的创建和管理交给我们Spring容器去做了&am…...
AI加速游戏开发 亚马逊云科技适配3大场景,打造下一代游戏体验
随着疫情的消散,中国游戏产业正在快速前进。在伴随着游戏产业升级的同时,整个行业都在面临着新的挑战与新的诉求。亚马逊云科技游戏研发解决方案和服务,覆盖端到端3大场景,为游戏公司与游戏开发人员赋能。 场景1:AI辅助…...
C++ | 继承(基类,父类,超类),(派生类,子类)
文章参考:https://blog.csdn.net/war1111886/article/details/8609957 一 .继承中的访问权限关系 1.基类,父类,超类是指被继承的类,派生类,子类是指继承于基类的类. 2…...
Commands Of Hadoop
序言 持续整理下常用的命令cuiyaonan2000163.com Command 文件拷贝 当从多个源拷贝时,如果两个源冲突,distcp会停止拷贝并提示出错信息,. 如果在目的位置发生冲突,会根据选项设置解决。 默认情况会跳过已经存在的目标文件&am…...
SQL-每日一题【620.有趣的电影】
题目 某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。 作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片…...
linux 精华总结
...
Eureka 学习笔记2:客户端 DiscoveryClient
版本 awsVersion ‘1.11.277’ DiscoveryClient # cacheRefreshTask // 配置shouldFetchRegistry if (clientConfig.shouldFetchRegistry()) {// 配置client.refresh.intervalint registryFetchIntervalSeconds clientConfig.getRegistryFetchIntervalSeconds();// 配置expB…...
okhttp原理分析
工程目录图 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 01okhttp module里 包含的设计模式:建造者设计模式、责任链设计模式 CustomInject 演示自定义注解 代码:okhttp原理分析、Andro…...
freeswitch的mod_xml_curl模块
概述 freeswitch是一款简单好用的VOIP开源软交换平台。 随着fs服务的增多,每一台fs都需要在后台单独配置,耗时耗力,心力憔悴。 如果有一个集中管理配置的配置中心,统一管理所有fs的配置,并可以实现动态的修改配置就…...
高速数据采集专家-FMC140【产品手册】
FMC140是一款具有缓冲模拟输入的低功耗、12位、双通道(5.2GSPS/通道)、单通道10.4GSPS、射频采样ADC模块,该板卡为FMC标准,符合VITA57.1规范,该模块可以作为一个理想的IO单元耦合至FPGA前端,8通道的JESD204…...
【SSM】知识集锦
项目一:狂神JAVA 功能1:实现全部书籍查询 1.思路:首页index.jsp ——>Controller——>hello.jsp 2.步骤: step1:index.jsp <% page language"java" contentType"text/html; charsetUTF-8" page…...
Flowable-中间事件-信号中间抛出事件
定义 当流程执行到达信号抛出事件时,流程引擎会直接抛出信号,其他引用了与其相同的信号捕获 事件会被触发,信号发出后事件结束,流程沿后继路线继续执行。其抛出的信号可以被信号开始事 件(Signal Start Event…...
【算法基础:动态规划】5.3 计数类DP(整数拆分、分拆数)
文章目录 例题:900. 整数划分解法1——完全背包解法2——分拆数⭐⭐⭐ 例题:900. 整数划分 https://www.acwing.com/problem/content/902/ 解法1——完全背包 容量是 n,物品的大小和价值是 1 ~ n 中的所有数字。 import java.util.*;pub…...
uni-app Android应用华为审核隐私权限提示与上架授权说明实战指南
1. uni-app Android应用华为审核隐私权限问题解析 第一次用uni-app开发Android应用准备上架华为市场时,我被审核驳回的理由整懵了——"缺少权限使用说明"。明明iOS版本在manifest.json配得好好的,怎么到Android就出问题?后来才发现…...
PID调参翻车实录:STM32驱动编码电机时,P值过大为何电机啸叫还振荡?
PID调参实战:STM32编码电机啸叫与振荡问题深度解析 当你在深夜实验室里第一次听到电机发出刺耳的啸叫声,同时观察到示波器上速度曲线像过山车一样上下震荡时,那种既困惑又兴奋的感觉,相信每个做过电机控制的工程师都深有体会。这不…...
别怕C++!手把手拆解TinyML测试框架:用micro_test.h给你的嵌入式AI代码加个‘保险丝’
嵌入式AI开发者的测试实战指南:用micro_test.h构建TinyML质量防线 在资源受限的微控制器上开发AI应用时,一个被反复验证的真理是:没有自动化测试的代码就像没有安全网的走钢丝。当你的神经网络模型需要在仅有几KB内存的设备上运行时ÿ…...
终极指南:如何实时监控Slonik连接池状态与性能指标
终极指南:如何实时监控Slonik连接池状态与性能指标 【免费下载链接】slonik A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL. 项目地址: https://gitcode.com/gh_mirrors/sl/slonik Slonik作为一款为Node.js打造…...
成电计算机复试面试:如何用一份‘心机’简历引导老师提问,并提前准备好答案?
计算机复试策略:如何用结构化简历设计引导面试走向 站在电子科技大学计算机复试的考场外,大多数考生都在反复背诵技术概念和项目细节,却很少有人意识到——面试本质上是一场精心设计的对话博弈。那些最终获得高分的考生,往往不是知…...
如何用Obsidian Image Converter实现图像高效管理?超实用技巧分享
如何用Obsidian Image Converter实现图像高效管理?超实用技巧分享 【免费下载链接】obsidian-image-converter ⚡️ Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align images directly in Obsidian. Drag-resize, rename with variab…...
视频号推客模式系统小程序开发
开发一个基于微信视频号的推客模式系统小程序,需要结合微信生态的开放能力和推客(分销)模式的业务逻辑。以下是关键开发要点:微信小程序与视频号打通通过微信开放平台的JS-SDK实现小程序与视频号的互联互通。调用wx.openChannelsA…...
广东省高级会计师评审辅导知名品牌
在职业发展的道路上,专业资格认证是许多财务从业者提升自我、拓宽职业路径的重要一环。广东省高级会计师评审,作为一项专业性强、要求严格的职业能力认定,其准备过程需要系统性的指导与支持。中山力朗教育咨询有限公司,作为一家立…...
GLM-4.1V-9B-Base效果展示:艺术画作风格+主题+文化元素三重解析
GLM-4.1V-9B-Base效果展示:艺术画作风格主题文化元素三重解析 1. 视觉理解新标杆:GLM-4.1V-9B-Base简介 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专为图像内容识别、场景描述和目标问答任务而设计。不同于普通的图像识别工具&…...
OneAPI安全增强指南:令牌过期策略、兑换码批量发放、用户邀请奖励机制详解
OneAPI安全增强指南:令牌过期策略、兑换码批量发放、用户邀请奖励机制详解 1. 引言:为什么你需要一个统一的大模型网关? 如果你正在使用或者管理多个大模型服务,比如 OpenAI 的 ChatGPT、百度的文心一言、阿里的通义千问&#x…...
