服务器自动备份数据库并上传至七牛云的shell脚本(亲测可用)

大家好,我是雄雄,欢迎关注微信公众号,雄雄的小课堂。

在这里插入图片描述

前言

前几天,服务器上不去了,可把我吓坏了,因为主要的产品数据库都在这个服务器上,有备份吗,也有,但是都在这个服务器上,现在服务器上不去,一切都白搭。

后来挂了一上午,总算是可以上去了,所以数据库这种东西,备份不光要本地备份,还得要异地备份,这样才更安全点,于是就结合AI,写了个shell脚本,亲测可以用。

脚本文件-

下面就是shell文件


#!/bin/bash

# 数据库备份脚本

# ******配置部分*****

# 数据库用户名
DB_USER=""            
# 数据库密码,请替换为您的密码 
DB_PASSWORD="" 
# 备份文件存放目录
BACKUP_DIR="/home/project/dbBackUp/sql" 
# gzip压缩等级
COMPRESSION_LEVEL=9   
# 保留备份的天数     
KEEP_DAYS=7         
# 获取当前时间戳       
DATE=$(date +"%Y%m%d%H%M%S") 
# 日志文件路径
LOG_FILE="$BACKUP_DIR/backup.log" 
#当前时间
datetime1=$(date +"%Y%m%d")
# qshell的安装路径,根据实际情况调整 ,安装命令如下
# $ wget https://github.com/qiniu/qshell/releases/download/v2.12.0/qshell-v2.12.0-linux-386.tar.gz
# $ tar -xvf qshell-v2.12.0-linux-386.tar.gz
# $ mv qshell /usr/bin/
# $ chmod +x /usr/bin/qshell

QSHELL_DIR="/usr/bin"
# 替换为您的AccessKey
ACCESS_KEY=""   
# 替换为您的SecretKey 
SECRET_KEY=""
# 替换为您的存储桶名称    
BUCKET_NAME="mxx-blognew"
# 存储桶所在的区域,例如: z0, z1, z2, asiaz0等  
BUCKET_ZONE="cn-east-2"  

# 创建备份目录如果它不存在
mkdir -p "$BACKUP_DIR"

# 指定要备份的数据库列表
DATABASES="blog_new wechatbot wewe-rss" # 请替换为您的数据库名称,多个数据库之间用空格分隔

# 开始备份
for DB in $DATABASES; do
    # 备份单个数据库
    mysqldump -u "$DB_USER" -p"$DB_PASSWORD" --databases "$DB" --single-transaction --quick --lock-tables=false --routines --triggers > "$BACKUP_DIR/${DB}_$DATE.sql"
    # 压缩备份文件
    gzip -$COMPRESSION_LEVEL "$BACKUP_DIR/${DB}_$DATE.sql"
    # 记录备份日志
    echo "备份 $DB 数据库 $DATE" >> "$LOG_FILE"
	#文件路径
	FILE_PATH="$BACKUP_DIR/${DB}_$DATE.sql.gz"
	# 文件名称
	FILE_NAME="${DB}_$DATE.sql.gz"
    echo "开始上传文件:$FILE_PATH下的$FILE_NAME文件 到七牛云存储桶: $BUCKET_NAME"
    
    # 使用qshell进行认证
    "$QSHELL_DIR/qshell" account "$ACCESS_KEY" "$SECRET_KEY" muxiongxiong > /dev/null
    
    # 上传文件到七牛云,参数分别是(桶的名称、备份的文件名、文件全路径)
    "$QSHELL_DIR/qshell" rput "$BUCKET_NAME" "dbBackUp/$datetime1/$FILE_NAME" "$FILE_PATH" >> "$LOG_FILE" 2>&1
    
    if [ $? -eq 0 ]; then
        echo "$FILE_PATH 上传成功" >> "$LOG_FILE"
		echo "上传成功"
    else
        echo "$FILE_PATH 上传失败" >> "$LOG_FILE"
		echo "上传失败"
    fi
done

echo "删除$keepDay天前的备份文件" >> "$logFile"
# 删除旧备份,保留最近$KEEP_DAYS天的备份
find "$BACKUP_DIR" -name "*.gz" -type f -mtime +$KEEP_DAYS -exec rm {} \;

# 脚本执行结束
echo "备份完成" >> "$LOG_FILE"
echo "备份完成"

基本上关键步骤都有注释,将变量改成你自己的就可以执行了。

一般配合宝塔面板使用会更好,或者写个shell定时任务,每天定时执行一下这个脚本,然后再七牛云对应的路径下就有

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现从服务器读取视频,你可以通过以下步骤: 1. 从服务器上获取视频的URL。 2. 使用媒体播放器库,如ExoPlayer或MediaPlayer,在Android设备上播放视频。 以下是使用ExoPlayer播放视频的示例代码: 1. 首先,在你的项目中添加ExoPlayer库的依赖项: ```groovy implementation 'com.google.android.exoplayer:exoplayer-core:2.14.1' implementation 'com.google.android.exoplayer:exoplayer-ui:2.14.1' ``` 2. 然后在你的Activity或Fragment中,创建一个ExoPlayer实例,设置数据源并准备播放: ```java private SimpleExoPlayer player; private PlayerView playerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化ExoPlayer player = new SimpleExoPlayer.Builder(this).build(); playerView = findViewById(R.id.player_view); playerView.setPlayer(player); // 设置视频数据源 Uri videoUri = Uri.parse("https://yourserver.com/video.mp4"); MediaSource mediaSource = new ProgressiveMediaSource.Factory( new DefaultDataSourceFactory(this, "exoplayer-sample")).createMediaSource(videoUri); // 准备播放 player.prepare(mediaSource); player.setPlayWhenReady(true); } @Override protected void onDestroy() { super.onDestroy(); // 释放ExoPlayer资源 player.release(); } ``` 接下来,我们看一下如何将本地视频上传七牛云存储并播放: 1. 在你的项目中添加七牛云存储SDK的依赖项: ```groovy implementation 'com.qiniu:qiniu-android-sdk:7.3.+' ``` 2. 然后在你的Activity或Fragment中,创建一个七牛云存储实例,上传视频文件并获取视频URL: ```java private Configuration config; private UploadManager uploadManager; private String videoUrl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化七牛云存储 config = new Configuration.Builder().build(); uploadManager = new UploadManager(config); // 上传本地视频文件 String localFilePath = "/sdcard/video.mp4"; String key = "video_" + System.currentTimeMillis() + ".mp4"; uploadManager.put(localFilePath, key, "<your-access-token>", new UpCompletionHandler() { @Override public void complete(String key, ResponseInfo info, JSONObject response) { if (info.isOK()) { // 获取视频URL videoUrl = "<your-domain>/" + key; } else { // 上传失败 Log.e("MainActivity", "Upload failed: " + info.error); } } }, null); } @Override protected void onDestroy() { super.onDestroy(); // 释放七牛云存储资源 uploadManager = null; } ``` 3. 最后,使用ExoPlayer播放七牛云存储上的视频: ```java // 设置视频数据源 Uri videoUri = Uri.parse(videoUrl); MediaSource mediaSource = new ProgressiveMediaSource.Factory( new DefaultDataSourceFactory(this, "exoplayer-sample")).createMediaSource(videoUri); // 准备播放 player.prepare(mediaSource); player.setPlayWhenReady(true); ``` 这样,你就可以在Android设备上从七牛云存储读取视频并播放了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆雄雄

哎,貌似还没开张来着呢~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值