【自用】shell脚本整理汇总

最后更新日期 12月 13th, 2021 at 10:36 上午

//源代码服务器中的执行“自动传输至远程服务器”的脚本内容
#!/bin/bash

// gitlab 服务器备份路径
LocalBackDir=/data/gitlabData/backups

// 远程备份服务器 gitlab备份文件存放路径
RemoteBackDir=/root/gitlabDataBackup

// 远程备份服务器 登录账户
RemoteUser=root

// 远程备份服务器 IP地址
RemoteIP=xxx.xxx.xxx.xxx

//当前系统日期
DATE=date +"%Y-%m-%d"

//Log存放路径
LogFile=$LocalBackDir/log/$DATE.log

// 查找 本地备份目录下 时间为100分钟之内的,并且后缀为.tar的gitlab备份文件
BACKUPFILE_SEND_TO_REMOTE=$(find /var/opt/gitlab/backups -type f -mmin -100 -name ‘.tar‘)

//新建日志文件
touch $LogFile

//追加日志到日志文件
echo “Gitlab auto backup to remote server, start at $(date +”%Y-%m-%d %H:%M:%S”)” >> $LogFile
echo “—————————————————————————” >> $LogFile

// 输出日志,打印出每次scp的文件名
echo “———————The file to scp to remote server is: $BACKUPFILE_SEND_TO_REMOTE——————————-” >> $LogFile

//备份到远程服务器
scp $BACKUPFILE_SEND_TO_REMOTE $RemoteUser@$RemoteIP:$RemoteBackDir

//追加日志到日志文件
echo “—————————————————————————” >> $LogFile

—————————————————————分割————————————————————

//远程服务器中,执行自动删除过期备份的shell脚本内容
#!/bin/bash

// 远程备份服务器 gitlab备份文件存放路径
GitlabBackDir=/root/gitlabDataBackup

// 查找远程备份路径下,超过180天 且文件后缀为.tar 的 Gitlab备份文件 然后删除
find $GitlabBackDir -type f -mtime +180 -name ‘.tar‘ -exec rm {} \;

PS:以上内容均参考gitlab自动备份教程,并成功实施。感谢这位大佬。
参考连接:

https://blog.csdn.net/ouyang_peng/article/details/77334215

https://blog.csdn.net/ouyang_peng/article/details/77070977

————————————–分割线——————————

#为单个用户每次登陆设置一次环境变量

if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi


#导入环境变量和定义变量

export ORACLE_HOME=/data1/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=实例名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=已经授权导出用户expdp的路径

#date 用来处理shell脚本的时间填写1 hours ago代表后续rm -rf删除一小时前的文件

export oldFileName=date -d "1 hours ago" +%Y%m%d%H
export nowFileName=date +%Y%m%d%H
echo “start……”
expdp 用户名/密码 tables=数据表 dumpfile=$nowFileName.dmp DIRECTORY=DMPDIR log=$nowFileName.log
echo “Delete the file bakup before hours…”
rm -rf $DATA_DIR/$oldFileName.dmp
rm -rf $DATA_DIR/$oldFileName.log
echo “finished…..”
————————————————
参考链接:https://blog.csdn.net/huanyue6660/article/details/79237378

————————————–分割线——————————

#检测mysql数据库,重启mysql

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
fi

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注