iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
IT管理

用UNRAID打造AIO全生態系列 第 19

Script:Auto Backup flash

  • 分享至 

  • xImage
  •  

現在相信大家對於UNRAID腳本操作與撰寫更熟練了吧?
那我們就來開始利用腳本來解決問題八~


UNRAID的系統備份雖然可以手動執行:
(從MAIN頁面進到Flash設定,按下圖中的FLASH BACKUP,即可備份系統碟)
https://ithelp.ithome.com.tw/upload/images/20221003/20117399DOZNMq8wvm.jpg

UNRAID採用USB當系統雖然易用性高,但長期讀寫也較容易壞
因此手動備份是不夠的,最好能定時備份
這樣假如損壞才可以馬上復原

PS:一定有人會說:用MY Server插件不是更方便嗎?
並不!
因為安全性的關係,它不能備份整個系統喔
所以系統復原後還要做相容性調整,不能讓機器馬上恢復工作;著實不方便

以下是程式實作的部分
程式碼的詳解我在下面都有註解,如還有不懂的地方可留言問我~
至於腳本的使用方式及程式碼撰寫練習可參考前幾天的文章

#!/bin/bash
dir="/mnt/remotes/Backup"
days=2

mkdir -p "$dir"
echo '備份檔案產生中...'
#調用系統備份PHP
/usr/local/emhttp/webGui/scripts/flash_backup
echo '產生metadata中...'
#利用emhttp產生備份檔的metadata
find /usr/local/emhttp/ -maxdepth 1 -name '*flash-backup-*.zip' -delete

sleep 5

if [ ! -d "$dir" ] ; then
 
			echo "making directory as it does not yet exist"
			mkdir -vp "$dir"
		else
			echo "As $dir exists continuing."
			fi

echo '將產生的備份檔移至目標路徑中...'
mv /*-flash-backup-*.zip "$dir"

sleep 5

#移除$day天以前的備份檔
echo "Deleting Old Backups:$days days"
find "$dir"* -mtime +"$days" -exec rm -rfv {} \;

echo 'Successfully!'
#輸出通知欄
/usr/local/emhttp/webGui/scripts/notify -e "Unraid Server Notice" -s "Flash Zip Backup" -d "System flash has been backed up" -i "normal"
exit

上一篇
Bash Script:Bash+PHP指令撰寫
下一篇
Script:File Auto Balance
系列文
用UNRAID打造AIO全生態31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言