linux实现定时备份文件到百度网盘详细教程

简介: 作为一个程序员,数据备份尤为重要,本文主要介绍的是将服务器上的某文件定时备份到百度网盘中。主要实现思路是:安装pip、byp --> 百度网盘进行授权登陆 --> 使用crontab+bypy实现定时自动数据备份。

一、准备工作


(1)写在文章之前

     作为一个程序员,数据备份尤为重要,本文主要介绍的是将服务器上的某文件定时备份到百度网盘中。主要实现思路是:安装pip、byp --> 百度网盘进行授权登陆 --> 使用crontab+bypy实现定时自动数据备份。


(2)环境

     Centos7+python2.7.5下利用crontab+bypy实现自动备份数据到百度网盘。笔者在制作过程中使用的是Xshell7软件连接linux服务器,当然你也可以使用宝塔面板上的终端来进行相关命令的操作,不过宝塔面板上的终端在输入一些命令时更容易出现问题,有时也有一定的局限性,比如点击宝塔其他页面之后终端上输入的命令将被清屏,有时连接失败后也会被清屏,不方便查看之前的命令执行结果。


(3)查看配置信息

成功连接linux服务器后可以使用如下命令查看自己的环境配置信息:


1.查看centos版本信息

cat /etc/redhat-release

2.查看linux版本

cat /proc/version

3.查看python版本

查看系统是否有python环境(一般系统自带python2.7),此命令查看过后用Ctrl-D退出或输入quit()退出。

python


二、执行流程


(1)安装pip

进入到服务器对应的项目文件根目录下,可以使用cd命令

#使用cd命令进入到项目根目录中
[root@iZ85173om7p5tdZ ~]# cd /www/wwwroot/zx.wiyp.top


sudo yum -y install epel-release   #这是安装pip是要用到的东西
sudo yum -y install python-pip
sudo yum clean all
sudo pip install --upgrade pip     #更新 


#如果无法更新可以使用命令:sudo python -m pip install --upgrade pip


 依次执行上面的代码,执行效果如下:

6cc3392e89b54901a919bc30aacf0327.png

2abda570c06a42b9955df78e52e27024.png

c8fc40fdbc334b17b368258d19699ec3.png

需要注意的是

这里在执行更新语句时出现了报错,无法更新时改命令用:sudo python -m pip install --upgrade pip,改用此命令时还是出现了一个错误:更新pip包时报错( “Python‘ setup.py egg_info“ failed with error code 1)记录。

此时尝试使用如下命令,发现还是不行,依然报错

    1. pip install --upgrade setuptools

    2.pip install ez_setup

这种情况可能是因为版本升级跨度较大,低级版本无法直接升级到高级版本,可尝试先升级到20.2.4,再尝试升级到20.3.4,此时问题就解决了。最后在进行一下更新操作。

1.python -m pip install --user --upgrade pip==20.2.4

2.python -m pip install --user --upgrade pip==20.3.4

c05d090e81d746f3a67f82c82bdb8930.png

(2)安装bypy,requests

sudo pip install bypy
sudo pip install requests

执行结果如下:出现succcess···表示成功。d7faecb79be34aabb6651ea523107582.png

0230727542a14218bde20a5c9ca0aec6.png

(4)授权登录

bypy info

执行bypy info并访问方框内的连接

ac9c9c0a59224b398248854fc56ed750.png

授权完成后可查看相关信息,由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。

bypy info     #空间使用信息
bypy list     #目录信息
bypy upload     例如我们可以备份上传/test目录下的所有文件,把本地当前目录下的文件同步到百度云盘,要注意切换到你想要上传的目录在执行这个命令,登录到网盘上,可以看到所有文件已经上传
bypy downdir    #把云盘上的内容同步到本地
bypy compare    #比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:

(5)创建目录和脚本文件

1.创建目录:

[root@iZ85173om7p5tdZ ~]# mkdir -p /backup/
[root@iZ85173om7p5tdZ ~]# cd /backup/ 
[root@iZ85173om7p5tdZ backup]# touch backup_to_baidu.sh  #创建脚本文件
[root@iZ85173om7p5tdZ backup]# vim backup_to_baidu.sh  #进入脚本文件进行编辑

2.创建脚本文件代码如下(书写代码要规范):

bypy 无法同时上传多个文件,百度云不支持上传文件夹,可以通过压缩的方式解决

#!/bin/sh
. /etc/profile
. ~/.bash_profile
backtar=`date '+%Y%m%d%H%M%S'`   //名称为当前时间年月日时分秒
zip -r /backup/${backtar}.zip  /www/wwwroot/zx.wiyp.top/public/assets/img/logo.png//上传某个路径下的文件,以空格隔开,可以添加多个
/usr/bin/bypy upload /backup/${backtar}.zip//上传的压缩文件
find /backup -mtime +7 |grep .zip | xargs rm -f//删除7天前生成的压缩包

需要用到的vim编辑器的命令:qa-切换模式,Esc+:wq+回车-保存退出,esc+shift_zz-保存退出

3.如果遇到脚本无法执行可以进行如图操作,参考菜鸟教程

414a0dfd29454460a818a7d4763abd94.png

(6)使用crontab实现定时备份数据

1. crontab是什么?

       crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。每个用户可以拥有自己的crontab文件。同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc目录中。

      crontab配置文件位于“/etc/crontab”,打开配置文件,可以看到相关配置信息。


5b7ada3769054458bff5bc9d6cf5161e.png

2. 怎样使用?

       用法:* * * * *command。前面5个*代表执行命令时间,后面的command代表要执行的命令。该命令可以使一个普通的命令、shell脚本、python脚本、java的jar包等。

3.使用流程

使用命令打开自动执行指令编辑脚本

crontab -e

f70157e3864a4568b2ec98ce018dcc97.png

脚本内容如下:我这里设置的是10:50进行执行上面创建的shell脚本backup_to_baidu.sh,具体时间设置可以参考菜鸟教程。

bd4bef60b8d54e2dba8147fa1a86fed3.png


完成后保存退出并重启服务,这样系统将会每天定时执行数据备份的脚本

systemctl restart crond   # 重启crond服务


补充:crontab相关的其他命令


crontab -r   #删除任务
crontab -l   #查看任务


三、百度网盘中的效果

5cfccca8781146aa81a63d5a080ed6c4.png

四、在文章最后


    以上过程是笔者在使用时出现的问题,如有什么问题欢迎指正。

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
1月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
75 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
27天前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
202 14
|
26天前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
87 6
|
28天前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
251 6
|
1月前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
48 0
|
2月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
1414 6
|
2月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
49 5
|
8月前
|
存储 安全 Linux
《Linux 简易速速上手小册》第9章: 备份与恢复策略(2024 最新版)
《Linux 简易速速上手小册》第9章: 备份与恢复策略(2024 最新版)
66 1
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
105 3

热门文章

最新文章