一:实现过程概述
通过在linux系统里配置crontab定时任务,定时执行shell脚本将指定目录的文件上传至gitlab,最后web页面查看文件的历史版本。
# git push file ,add in 20240218 from cupli
*/5 * * * * cd /opt/script && /bin/bash git_push_file.sh >> /tmp/git_push_file.log
二:脚本详情
#!/bin/bash
echo "#####doing in `date "+%Y-%m-%d_%H:%M:%S"` #####################################"
#拉取服务器的配置文件
mkdir -p /tmp/linshi/2024/from-ecs-task/task001 && cd /tmp/linshi/2024/from-ecs-task/task001 && scp root@10.0.10.228:/etc/supervisord.d/*.ini .
mkdir -p /tmp/linshi/2024/from-ecs-task/task002 && cd /tmp/linshi/2024/from-ecs-task/task002 && scp root@10.0.10.239:/etc/supervisord.d/*.ini .
cd /tmp/linshi/2024 && rm -rf supervisor
#重新拉取git仓库,记得hosts里改为内网地址
git clone ssh://git@git.iamcup.com:2229/yunwei/supervisor.git && tree
#把服务器的文件覆盖到git目录,并提交。
cd /tmp/linshi/2024/supervisor/ && \cp -R ../from-ecs-task/* .
#git push file
git status
git config --global user.name "iam-yunwei-script"
git config --global user.email "iam-yunwei-script@notsend.com"
git add .
git add *
git commit -m "iam-yunwei-script update in `date "+%Y-%m-%d_%H:%M:%S"` "
git status
git push origin main
三:页面展示
通过gitlab的提交记录,可以看到文件的历史版本,达到历史审计的目的。