在Ubuntu服務器上備份文件到自己的百度網盤

文章目錄

  • 概述
  • 安裝bypy
  • 同步文件
  • 定時任務腳本

概述

之前自購了一臺阿里云服務器,系統鏡像為Ubuntu 22.04, 并且搭建了LNMP開發環境(可以參考:《Ubuntu搭建PHP開發環境操作步驟(保姆級教程)》)。由于項目運行中會產生附件(比如圖片、視頻等二進制文件),一般情況下可以把網站的附件存儲到OSS上,但是,OSS需要花錢,由于項目比較小,而且本著少花點錢的原則,還是把附件就放在了網站服務器上。那么,就需要考慮一個問題,附件文件的備份問題。如果服務器遭受攻擊,那么有可能附件就找不回來了。于是乎,我就在想,能不能在Ubuntu服務器上免費的實現文件備份。最終,我發現了這個神器:bypy。

安裝bypy

# 切換到root用戶
sudo -i# 安裝 pip3 (如果已安裝,則跳過此步驟)
apt install python3-pip# 安裝依賴
pip3 install requests (如果已安裝,則跳過此步驟)# 安裝bypy
pip3 install bypy # 如果最新版不能用,可以使用1.6.10版本: pip3 install bypy==1.6.10# 獲取百度網盤的授權
bypy info

如果報錯:Command ‘bypy’ not found, did you mean ,應該是沒有切換到root用戶

正常情況的話,就會出現下面的內容:

Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done

訪問提示的鏈接,就會打開百度網盤的授權頁面,登錄你的百度網盤賬號,然后授權即可。

image-20241211144537997

接下來,把上面的授權碼復制下來,粘貼到服務器的終端:

image-20241211144835477

同步文件

基本操作的命令如下:

# 上傳服務器當前目錄下的文件到百度云盤
bypy upload# 下載百度網盤上的內容到服務器的當前目錄
bypy downdir# 比較服務器當前目錄和網盤的文件是否一致
bypy compare# 查看網盤的文件列表
bypy list# 運行時添加-v參數,會顯示進度詳情。
# 運行時添加-d,會顯示一些調試信息。

實際演示一下:

隨便找個目錄,創建兩個測試文件,然后運行 bypy upload,接下來,去到 百度網盤-我的應用數據-bypy 文件夾查看:

image-20241211145516635

切換一個目錄,運行 bypy downdir

image-20241211145655513
上傳到網盤的指定目錄:bypy upload ./ 2024/123/456/ 會將當前目錄下的所有文件上傳到網盤的 apps >bypy >2024>123>456目錄下,別忘了456/后面的/
在這里插入圖片描述

特別說明:

  • 增量備份:對于網盤已存在的文件,如果文件沒有變化,再次同步會跳過。
  • 單向備份:對于已同步過的文件,如果刪除了服務器上的文件,并不會刪除百度網盤上的文件。

定時任務腳本

然后,通過crontab 寫一個定時任務,就可以實現自動備份服務器上的文件到自己的網盤了,再也不怕服務器的大容量文件丟失了。

備份數據庫的腳本 :

# export_sql.shmysqldump -u root -p123456 dbname > /home/admin/www/sql/dbname.sql

備份SQL文件和圖片文件的腳本,圖片文件按照年/月/日 的目錄存放,備份昨天的:

# upload_img_to_bdwp.shsqlpath=/home/admin/www/sql
cd ${sqlpath}
echo ${sqlpath}
nohup bypy upload ./ sql >/dev/null 2>&1 &# 獲取昨天的日期
yesterday=$(date -d "yesterday" +"%Y/%m/%d")
imgpath=/home/admin/www/img/file_${yesterday}
if [ ! -d ${imgpath} ]; thenecho "當前日期的圖片文件目錄不存在"exit 0
ficd ${imgpath}
echo ${imgpath}
nohup bypy upload ./ ${yesterday} >/dev/null 2>&1 &

定時任務腳本crontab -e

# 每天02:00 備份數據庫
0 2 * * * sh /root/shell/export_sql.sh# 每天03:00 備份文件到百度網盤
0 3 * * * sh /root/shell/upload_img_to_bdwp.sh

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63046.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63046.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63046.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

safe area helper插件

概述 顯示不同機型的必能顯示的區域 實現步驟 引入safearea,引入其中的safearea的csharp 為cancas加入gameobject gameobject中加入safearea腳本 將UI作為這個gameobject的子物體,就可以完成顯示

Unity 獲取鼠標點擊位置物體貼圖顏色

實現 Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) {textureCoord hit.textureCoord;textureCoord.x * textureMat.width;textureCoord.y * textureMat.height;textureColor textureMat.GetPixel(Mathf.Flo…

基于深度學習的貓狗識別系統【深度學習課設】

🏆 作者簡介:席萬里 ? 個人網站:https://dahua.bloggo.chat/ ?? 一名后端開發小趴菜,同時略懂Vue與React前端技術,也了解一點微信小程序開發。 🍻 對計算機充滿興趣,愿意并且希望學習更多的技…

05、GC基礎知識

JVM程序在跑起來之后,在數據的交互過程中,就會有一些數據是過期不用的,這些數據可以看做是垃圾,JVM中,這些垃圾是不用開發者管的,它自己會有一套垃圾回收系統自動回收這些內存垃圾,以備后面繼續…

什么是戰略思想?

古今中外,關于戰略是什么?有非常多的理論,也有不同的視角。 中國最早的涉及戰略的書籍據傳是黃帝所著的《握奇文》,后有較為系統的兵法戰略書籍為周朝姜太公(亦稱姜尚、姜子牙等)所著的《六韜》&#xff0c…

2024.12.15 TCP/IP 網絡模型有哪幾層?(二)

2024.12.15 TCP/IP 網絡模型有哪幾層?(二) 上節課我們學習了網絡模型有四部分構成,有應用層、傳輸層、網絡層、網絡接口層。 生成了 IP 頭部之后,接下來要交給網絡接口層(Link Layer)在 IP 頭部的前面加上 MAC 頭部&#xff0c…

51c深度學習~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里葉特征 (Fourier Feature)與核回歸 位置編碼背后的理論解釋 本文探討了位置編碼背后的理論基礎,特別是傅里葉特征(Fourier Feature)與核回歸(Kern…

Flutter Navigator2.0的原理和Web端實踐

01 背景與動機 在Navigator 2.0推出之前,Flutter主要通過Navigator 1.0和其提供的 API(如push(), pop(), pushNamed()等)來管理頁面路由。然而,Navigator 1.0存在一些局限性,如難以實現復雜的頁面操作(如移…

代碼隨想錄算法訓練營第三天 | 鏈表理論基礎 | 707.設計鏈表

要求太多&#xff0c;代碼量太大&#xff0c;實在難以完成 在以前聽說&#xff0c;好的程序員&#xff0c;可以在短時生成大量的代碼&#xff0c;本題只方法才只有6個&#xff0c;根本不算多 每天手敲代碼量太少&#xff0c;才是問題 #include <iostream>class MyLink…

數據冒險、控制冒險、結構冒險

計算機組成原理 數據冒險、控制冒險、結構冒險 對所有用戶&#xff08;所有程序員&#xff09;可見&#xff1a;PSW、PC、通用寄存器 PSW&#xff08;條件轉移需要用到&#xff0c;程序員使用CMP指令的時候也需要用到所以是對用戶可見&#xff09;PC&#xff08;跳轉指令需要…

基于32單片機的RS485綜合土壤傳感器檢測土壤PH、氮磷鉀的使用(超詳細)

1-3為RS485綜合土壤傳感器的基本內容 4-5為基于STM32F103C8T6單片機使用RS485傳感器檢測土壤PH、氮磷鉀并顯示在OLED顯示屏的相關配置內容 注意&#xff1a;本篇文件講解使用的是PH、氮磷鉀四合一RS485綜合土壤傳感器&#xff0c;但里面的講解內容適配市面上的所有多合一的RS…

SpringBoot【十一】mybatis-plus實現多數據源配置,開箱即用!

一、前言&#x1f525; 環境說明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情況下我們在開發系統的時候都是使用一個數據源&#xff0c;但是由于有些項目同步數據的時候不想造成數據庫io消耗壓力過大&#xff0c;便會一個項目對應多個數據源…

Node.js教程入門第一課:環境安裝

對于一個程序員來說&#xff0c;每學習一個新東西的時候&#xff0c;第一步基本上都是先進行環境的搭建&#xff01; 從本章節開始讓我們開始探索Node.js的世界吧! 什么是Node.js? 那么什么是Node.js呢&#xff1f;簡單的說Node.js 就是運行在服務端的 JavaScript JavaScript…

vim優化

1.編輯如下內容&#xff1a; cat > /root/.vimrc <<EOF set tabstop2 " 設置 Tab 為 2 個空格 set shiftwidth2 " 設置自動縮進為 2 個空格 set expandtab " 將 Tab 轉換為空格 " 基本設置 set number syntax on" 快捷鍵設置…

字符串性能對比

效率(1) : String.indexOf與String.contains效率測試_string contains效率-CSDN博客 結論是前者效率高&#xff0c;源碼里面conatins是使用indexof 在jdk8中contains直接調用的indexOf(其他版本沒有驗證),所以要說效率來說肯定是indexOf高,但contains也就多了一層方法棧,so 什…

移動網絡的原理

無線網絡是如何解決移動通信問題的 場景&#xff1a;用戶在一輛轎車內以150km/h的時速沿高速公路急速行駛時穿過多個無線接入網&#xff0c;用戶希望在整個旅程中保持一個與遠程應用的不間斷的TCP連接。 解決方案&#xff1a;移動節點的間接路由選擇方法可解決TCP鏈接不間斷的…

python學opencv|讀取圖像(十三)BGR圖像和HSV圖像互相轉換深入

【1】引言 前序學習過程中&#xff0c;我們偶然發現&#xff1a;如果原始圖像是png格式&#xff0c;將其從BGR轉向HSV&#xff0c;再從HSV轉回BGR后&#xff0c;圖像的效果要好于JPG格式。 文章鏈接為&#xff1a; python學opencv|讀取圖像&#xff08;十二&#xff09;BGR圖…

解決node.js的req.body為空的問題

從昨晚一直在試&#xff0c;明明之前用的封裝的axios發送請求給其他的后端&#xff08;springboot&#xff09;是可以的&#xff0c;但昨天用了新項目的后端&#xff08;node.js&#xff09;就不行。 之前用了代理&#xff0c;所以瀏覽器發送的post請求不會被攔截&#xff0c;…

【嵌入式】嵌入式面試題 36 問

1. volatile 是否可以修飾 const 是的&#xff0c;volatile 可以修飾 const。const 表示變量的值不能被修改&#xff0c;而 volatile 表示變量的值可能在程序之外被修改&#xff08;例如&#xff0c;由硬件修改&#xff09;。 將 volatile 用于 const 變量意味著該變量的值雖然…

java基礎概念49-數據結構2

一、樹 1-1、樹的基本概念 1、樹的節點 2、二叉樹 3、樹的高度 1-2、二叉查找樹 普通二叉樹沒有規律&#xff0c;不方便查找&#xff0c;沒什么作用。 1、基本概念 2、添加節點 此時&#xff0c;該方式添加形成的二叉查找樹&#xff0c;根節點就是第一個節點。 3、查找節點 4…