原csdn地址https://blog.csdn.ne|

蜗牛使劲冲

园龄:7年6个月粉丝:3关注:10

备份数据文件到新服务器上

@

需求背景

需要备份nas服务器上的gitlab的代码备份到另一个硬盘上,一开始想看看服务器里面的硬盘分布,执行后发现一共16t,一个14t一个900多G,但是两个被分在一个数据卷里面,数据卷写数据是随机写入的,随后想出B方案备份文件到公司另一台服务器上,原来我这边看项目不多,到时候打包下再同步过去就行了,然后我找项目存放的地址,找了半天没找到再仔细搜了下gitlab的安装发现新的版本已经将文件相关的都hash保存了,也就是说找不到具体项目存放的位置了,然后就是C方案在另一台服务器上直接拉所有的项目,从中学习到了多个知识总结如下:

使用lsblk查看硬盘使用情况

lsblk

生成ssh的key,使用rsa加密方式 4096位(目标是为了把pub放到目标服务器,后期就不需要每次都输入账号密码了)

ssh-keygen -t rsa -b 4096

通过ssh远程另一台服务器

#复制我的ssh到目标服务器
ssh-copy-id -p 22 wt@10.111.111.111
#验证刚刚操作是否成功
ssh -p 22  wt@10.111.111.111

#也可以再使用rsync技术同步数据过去

免去每次拉项目都要输入密码的操作

git config --global credential.helper store
#刚刚ssh-keygen生成了pub公钥,去/home/wt/.ssh里面的*.pub复制里面的字符串,然后粘贴到gitlab-头像-setting-增加ssh

到每个项目里面拉取代码脚本

#!/bin/bash

# Define the directories for the projects
PROJECT_DIRS=( "/home/wt/backup-code/hoteloffice-unity" "/home/wt/backup-code/project-android" )


for DIR in "${PROJECT_DIRS[@]}"
do
    echo "Updating $DIR..."
    cd "$DIR" || { echo "Failed to enter directory $DIR"; exit 1; }
    git pull
done

echo "All projects updated."
current_time=$(date "+%Y-%m-%d %H:%M:%S")
echo "$current_time"
echo ""

crontab写定时任务

0 2 * * * /home/wt/backup.sh >> /home/wt/backup_log.log 2>&1

总结

写功能多了解,能省时间,多用用gpt

本文作者:蜗牛使劲冲

本文链接:https://www.cnblogs.com/warrenwt/p/18641872

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   蜗牛使劲冲  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起