@
目录需求背景
需要备份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
标签:数据文件,备份,echo,wt,ssh,服务器,home,另一台 From: https://www.cnblogs.com/warrenwt/p/18641872