首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
180 阅读
2
UNRAID增加和缩小虚拟机虚拟磁盘大小
48 阅读
3
unraid添加iSCSI 发起程序
39 阅读
4
iStoreOS上使用WireGuard
20 阅读
5
docker安装WireGuard Easy
13 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
Linux
sftp
防火墙
奥黛丽·逐爱者
累计撰写
100
篇文章
累计收到
10
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
20
篇与
转载微信公众号文章
的结果
2025-06-21
如何使用 Rsync 将一台主 Web 服务器上的文件和目录同步到另一台备份服务器
在管理 Web 服务器时,确保数据安全且在发生故障时能够快速恢复至关重要,备份和镜像 Web 服务器数据最可靠的方法之一是使用 rsync。Rsync 工具可以帮助在两台服务器之间同步文件和目录,非常适合用于创建 Web 服务器数据的备份和镜像。下面将详细介绍使用 rsync 将 Web 服务器与备份服务器进行同步。同时介绍设置无密码登录,通过 cron 定时任务实现自动化的同步过程。1.环境说明现在有两台服务器,一台为主 WEB 服务器,另一台为备份服器,其关键信息如下表所示:服务器类型IP 地址主机名主 Web 服务器192.168.250.100web.test.com备份服务器192.168.250.200backup.test.com其拓扑图如下:注:两台服务器之间应启用 SSH 访问,这将用于通过 SSH 密钥设置无密码登录,从而实现顺畅的自动化操作。2.设置无密码 SSH 登录为了通过 cron 自动化同步过程,需要从主 Web 服务器(主服务器)到备份服务器设置无密码 SSH 登录,这将允许 rsync 在每次运行时无需输入密码。登录到主 Web 服务器(web.test.com),生成 SSH 密钥,并确保接受默认的文件位置且不设置密钥密码。ssh-keygen -t rsa -b 2048接下来,使用 ssh-copy-id 命令将公钥复制到备份服务器:ssh-copy-id admin@192.168.250.200最后,通过从主 Web 服务器登录到备份服务器来测试连接:ssh admin@192.168.250.200如果无需输入密码即可登录,则表示设置成功。3.使用 Rsync 同步 Web 服务器数据现在我们已经设置了无密码 SSH,可以使用 rsync 将 Web 服务器的数据同步到备份服务器。Web 服务器的数据通常存储在 /var/www/html/ 目录中,我们将使用该目录进行备份和镜像。# 基本的 Rsync 命令用法补充要在主 Web 服务器(web.test.com)上执行一次性备份,请运行以下命令:rsync -avz /var/www/html/ user@host_ip:/path/to/backup/directory上述命令的解释如下:-a 表示“归档模式”,可保留文件的权限、时间戳和其他属性。-v 启用详细输出,以便您可以看到正在传输的文件。-z 启用压缩,以减少数据传输量。1)将文件同步到备份服务器目录将 /path/to/backup/directory 替换为备份服务器(这里假设备份服务器的备份目录在/data/backup/web下)上规划存储备份的实际路径。例如:rsync -avz /var/www/html/ admin@192.168.250.200:/data/backup/web2)镜像 Web 服务器目录如果需要镜像目录(即使备份与源目录完全一致),可以使用 --delete 选项:rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web--delete参数会删除备份目录中不再存在于 Web 服务器上的文件,确保两个目录完全一致。4.使用 Cron 自动化备份为了确保定期备份,我们可以使用 cron 定时任务自动运行 rsync 命令,这样备份过程将在指定的时间运行,例如每天午夜。在主 Web 服务器(web.test.com)上,通过运行以下命令打开 crontab 文件:crontab -e要将备份设置为每天00:00运行,请在 crontab 中添加以下行:0 0 * * * rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web保存 crontab 文件并退出,这样 cron 任务将每天自动在凌晨 12:00 运行(半夜时分)。也可以根据需要调整时间,比如,要改成每天凌晨 1:00 运行,可以这样修改:0 1 * * * rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web5.验证备份设置好 cron任务后,可以通过检查系统日志来验证 cron 任务是否按预期运行:grep CRON /var/log/syslog登录到备份服务器(backup.test.com),检查 /data/backup/web 目录中的文件是否与主 Web 服务器上的 /var/www/html/ 目录中的文件一致。我们还可以通过在主 Web 服务器上删除一个文件,然后验证在下一次 rsync 运行后该文件是否从备份目录中删除,来进行测试。
2025年06月21日
1 阅读
0 评论
0 点赞
2025-06-21
docker手册
docker手册安装# 移除旧版本dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine# 配置docker yum源。sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装 最新 dockersudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 启动& 开机启动docker; enable + start 二合一systemctl enable docker --now# 配置加速sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker常见命令#查看运行中的容器docker ps#查看所有容器docker ps -a#获取所有容器id:docker ps -aq#搜索镜像docker search nginx#下载镜像docker pull nginx#下载指定版本镜像docker pull nginx:1.26.0#查看所有镜像docker images#删除指定id的镜像docker rmi e784f4560448#运行一个新容器docker run nginx#停止容器docker stop keen_blackwell#启动容器docker start 592#重启容器docker restart 592#查看容器资源占用情况docker stats 592#查看容器日志docker logs 592#删除指定容器docker rm 592#强制删除指定容器docker rm -f 592# 后台启动容器docker run -d --name mynginx nginx# 后台启动并暴露端口docker run -d --name mynginx -p 80:80 nginx# 进入容器内部docker exec -it mynginx /bin/bash# 查看容器详情docker container inspect mynginxdocker inspect mynginx# 提交容器变化打成一个新的镜像docker commit -m "update index.html" mynginx mynginx:v1.0# 保存镜像为指定文件docker save -o mynginx.tar mynginx:v1.0# 删除多个镜像docker rmi bde7d154a67f 94543a6c1aef e784f4560448# 加载镜像docker load -i mynginx.tar # 登录 docker hubdocker login# 重新给镜像打标签docker tag mynginx:v1.0 leifengyang/mynginx:v1.0# 推送镜像docker push leifengyang/mynginx:v1.0存储两种方式,注意区分:● 目录挂载: -v /app/nghtml:/usr/share/nginx/html● 卷映射:-v ngconf:/etc/nginx---------------------------------1、卷映射:-v 卷:容器内目录2、卷在外部主机默认存放位置:/var/lib/docker/volumes/卷名3、列出所有的卷操作docker volume ls4、创建一个卷docker volume create 卷名5、查看某个卷的详情docker volume inspect 卷名网络docker network --help# 创建自定义网络,实现主机名作为稳定域名访问。# 自定义网络docker network create mynet# docker为每个容器分配唯一IP,使用容器ip+容器端口可以互相访问# 运行镜像并且添加为自定义网络docker run -d -p 88:80 --name app01 --network mynet nginxDockerfile 自定义镜像指令作用FROM指定镜像基础环境RUN运行自定义命令CMD容器启动命令或参数LABEL自定义标签EXPOSE指定暴露端口ENV环境变量ADD添加文件到镜像COPY复制文件到镜像ENTRYPOINT容器固定启动命令VOLUME数据卷USER指定用户和用户组WORKDIR指定默认工作目录ARG指定构建参数构建命令docker build -f Dockerfile -t mynginx:v1.0 .
2025年06月21日
1 阅读
0 评论
0 点赞
2025-06-21
13、Dockerfile-制作镜像
纸上得来终觉浅,绝知此事要躬行,整理不易,如果你觉得对你有帮助,麻烦小小的赞助一波腾讯云服务器链接:https://curl.qcloud.com/qZO3kFyldockerfile允许你创建自己应用程序的镜像,不仅仅只能从应用市场下载下来,构建镜像常用的流程图如下构建镜像常用的命令如下,更详细的需要去docker官网去查看相关的命令https://docs.docker.com/reference/dockerfile/构建命令常见的类似这种:docker build -f Dockerfile -t myapp:v1.0 .后续我会以实战的模式部署一个netcore程序 到时候再详细讲,dockerfile文件一般简单这种写即可docker镜像分层存储机制容器有自己的读写层,所以容器删除了容器自己的读写层就丢了,就没法再读取相关数据,但是镜像有自己的分层不会删除不同容器有自己的读写层,互相隔离 互不影响,docker宗旨能共用则共用,分层存储 各自执行好了小伙伴们,今天先到这里赶快去试试吧,可以看看下面短剧适当放松下,感觉还挺有意思的
2025年06月21日
1 阅读
0 评论
0 点赞
2025-06-18
4.3K Star!一键同步文章到多个内容平台!神器!
推荐阅读:1.2K Star!一款好用又强大的开源社区!五星好评!14.6K Star!一个免费没有限制的录屏工具!很强!推荐:全球第一个AI旅行伙伴问世!太有创意了!大家好啊!我是老码!专门搜罗分享一些优秀开源项目、工具软件、AI工具等以及进行一些原创技术分享和干货文章分享!喜欢的可以点个关注哟!当你还在为一篇内容发布多个平台复制粘贴脑壳疼的时候,别人已经用上自动化多个平台分发工具了。最近在开源网站上看到一个这样的项目,它可将微信公众号等平台的文章一键同步到今日头条、WordPress、知乎、简书、掘金、CSDN、typecho 等多个主流内容平台,实现一次发布,多平台同步发布,极大地提高了内容创作者的效率。它的一些特性有: 公众号文章同步,Markdown 编辑器,网页正文提取(基于 Safari 阅读模式) 可实现多平台互同步,本地Markdown同步,Markdown支持公众号样式定义。它支持同步的平台包括但不限于以下平台:微信公众号、知乎、微博、Bilibili、豆瓣、头条号、搜狐号、大鱼号、一点资讯、CSDN、51CTO、Segmentfault、掘金、开源中国、Typecho、WordPress。使用方法安装 :可以直接从 Chrome 插件商店搜索进行安装;如果无法访问 Chrome 官方商店,也可从 GitHub 下载插件的解压文件,通过 Chrome 浏览器的开发者模式进行离线安装。同步文章 :安装完成后,在浏览器的插件栏中找到插件,点击后选择要同步的文章,点击 “同步” 按钮,设置完同步平台等选项后,即可将文章同步到选择的平台。这个多平台同步工具叫——Wechatsync,如果你是一个多平台的自媒体创作者,我想这个工具可能是一个非常不错的工具,它能显著减少了在多个平台分别发布文章所花费的时间和精力,提高了工作效率;地址:https://github.com/wechatsync/Wechatsync往期精彩回顾推荐:一款功能强大的AI视频生成工具!有点强!点赞!几个很有用的网站工具!建议收藏!推荐:一个基于AI的自动化工具!懒人解放!优秀!一个非常酷的框架,Ai编码、流程编排、模块化、插件化!点赞!推荐:让windows焕然一新的工具!轻量高颜值!很有趣!一个开源的聊天记录分析与管理工具!点赞!推荐:3个你可能没见过的工具!非常好用!4.5K Star!电脑轻松掌控手机!延迟低功能强!推荐!一个高颜值的中后台模版!开箱即用!免费又实用!3个鲜为人知的高质量网站!都是精品!18.1K Star!让AI帮你写前端!聊聊天就搞定!
2025年06月18日
1 阅读
0 评论
0 点赞
2025-06-18
定时任务 crontab + Shell 脚本组合大法,让你的数据库自动化无压力(教程+代码)
点击上方“IT咸鱼”,关注博主有问题私信嘀嘀作者哦!每天分享技术栈,开发工具等环境说明操作系统:AlmaLinux 8.x数据库:MySQL 部署在 Docker 容器中目录结构:假定把脚本统一放在 ~/scripts二、准备工作:创建脚本存放目录登录到你的主服务器(master)ssh dba@master.example.com创建专属目录mkdir-p ~/scriptscd ~/scripts-p:不存在就创建;cd:进入目录。确认目录权限ls-ld ~/scripts输出应类似:drwxr-xr-x 2 dba dba 4096May2510:00/home/dba/scripts三、Shell 脚本示例:MySQL 备份脚本目标:每天凌晨 2 点自动备份主库并保留最近 7 天的备份。脚本名称:backup_mysql.sh#!/bin/bash## backup_mysql.sh —— 自动备份 MySQL 主库# 环境:AlmaLinux + Docker# 说明:依赖 docker、gzip、mysqldump## —— 一、基本变量定义 —— # 容器名称或 IDCONTAINER_NAME="mysql-master"# 备份存放目录BACKUP_DIR="/home/dba/scripts/backups"# 保留天数RETENTION_DAYS=7# 时间戳DATE=$(date +"%F_%H%M")# —— 二、命令检查 —— forcmdindocker mysqldump gzip;docommand-v$cmd>/dev/null 2>&1if[$?-ne0];thenecho "错误:未检测到命令 $cmd,请安装后重试!"exit1fidone# —— 三、创建备份目录 —— mkdir -p "$BACKUP_DIR"if[$?-ne0];thenecho "错误:创建目录 $BACKUP_DIR 失败!"exit 1fi# —— 四、执行备份 —— BACKUP_FILE="$BACKUP_DIR/mysql_backup_${DATE}.sql.gz"echo "[$(date +"%F %T")] 开始备份:$BACKUP_FILE"dockerexec$CONTAINER_NAME\ mysqldump -uroot -p'your_password' --all-databases \|gzip>"$BACKUP_FILE"if[$?-eq0];thenecho"[$(date +"%F %T")] 备份完成!"elseecho"[$(date +"%F %T")] 备份失败!"exit1fi# —— 五、清理过期备份 —— echo"[$(date +"%F %T")] 开始清理 $RETENTION_DAYS 天前的备份"find"$BACKUP_DIR"-type f -name"mysql_backup_*.sql.gz"\-mtime +$RETENTION_DAYS-print-deleteecho"[$(date +"%F %T")] 清理完成!"注意command -v cmd:检查命令是否安装;docker exec:进入容器执行;find … -mtime +N:查找 N 天前的文件;如果你看到 bash: command: 未找到命令,说明系统中没有安装对应命令:# 例如安装 dockersudo dnf install-ydocker# 或者安装 gzipsudo dnf install-ygzip四、配置 crontab:让脚本自动跑起来打开 crontab 编辑器crontab-e第一次会让你选择编辑器,推荐 vim或 nano。添加定时任务在文件末尾新增一行:02***/home/dba/scripts/backup_mysql.sh>>/home/dba/scripts/backup.log2>&1含义:0 2 * * *:每天 02:00 执行>> backup.log 2>&1:将标准输出和错误输出都追加到 backup.log保存并退出vim:ESC→ :wq→ 回车nano:Ctrl+O→ 回车 → Ctrl+X查看 crontab 是否生效crontab-l会列出刚才添加的任务。五、常见错误排查错误提示原因 & 解决方案bash: backup_mysql.sh: 未找到命令- 脚本没有可执行权限:chmod +x backup_mysql.sh- 路径写错,检查全路径docker: 未找到命令- Docker 未安装或未加入 PATH:sudo dnf install docker- 需注销后重登mysqldump: command not found- 容器内没安装 mysql-client:在 Dockerfile 中添加 yum install -y mysqlpermission denied- 目录权限不足:chmod -R 755 ~/scripts找不到脚本- crontab 中路径不对:务必写绝对路径六、“官方”示意图支持官方文档示意:crontab 字段含义来源:Linux 手册crontab 字段官方示意图七、进阶玩法 & 注意事项邮件通知:在脚本末尾加mail -s"MySQL 备份报告 $(date +'%F')" you@example.com < backup.log主从同步检查:可以写一个脚本 check_replication.sh,通过 SHOW SLAVE STATUS判断延迟。集中化日志管理:把 backup.log发送到日志服务器或 ELK。安全:不要把数据库密码写在脚本里,推荐使用 .my.cnf或 docker secret。八、小结脚本编写:变量、命令检查、错误退出、日志记录定时执行:crontab 配置、日志重定向排查技巧:command -v、全路径、权限环境依赖:AlmaLinux + Docker + GNU 工具只要照着示例改一改、跑一跑,你的数据库自动备份就稳稳当当了!如果你还有问题,欢迎在后台留言!(脚本为服务器复制可能有空格问题)一行一行教你搞定 Shell 脚本基础,别再死记硬背了END如果看到这里,说明你喜欢这篇文章,请推荐、转发、点赞。同时 标星(置顶)本博主可以第一时间接受到博文推送。私信说出你想要的资源给你安排!!! 👆长按上方二维码 2 秒说出你想要的资源我知道你 “在看”
2025年06月18日
2 阅读
0 评论
0 点赞
1
...
3
4