鸟哥备份方案

2024-04-24 13:38
文章标签 备份 方案 鸟哥

本文主要是介绍鸟哥备份方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、每周的备份脚本
1、底下提供鳥哥的備份的 scripts ,希望對大家有點幫助!鳥哥假設你已經知道如何掛載一個新的 filesystem 到 /backup 去,所以格式化與掛載這裡就不再強調囉。
==========================================
[root@www ~]# vi /backup/backupwk.sh
#!/bin/bash
# ====================================================================
# 使用者參數輸入位置:
# basedir=你用來儲存此腳本所預計備份的資料之目錄(請獨立檔案系統)
basedir=/backup/weekly  <==您只要改這裡就好了!
# ====================================================================
# 底下請不要修改了!用預設值即可!
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
# 設定要備份的服務的設定檔,以及備份的目錄
named=$basedir/named
postfixd=$basedir/postfix
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
sambad=$basedir/samba
wwwd=$basedir/www
others=$basedir/others
userinfod=$basedir/userinfo
# 判斷目錄是否存在,若不存在則予以建立。
for dirs in $named $postfixd $vsftpd $sshd $sambad $wwwd $others $userinfod
do
    [ ! -d "$dirs" ] && mkdir -p $dirs
done
# 1. 將系統主要的服務之設定檔分別備份下來,同時也備份 /etc 全部。
cp -a /var/named/chroot/{etc,var}    $named
cp -a /etc/postfix /etc/dovecot.conf    $postfixd
cp -a /etc/vsftpd/*            $vsftpd
cp -a /etc/ssh/*            $sshd
cp -a /etc/samba/*            $sambad
cp -a /etc/{my.cnf,php.ini,httpd}    $wwwd
cd /var/lib
tar -jpc -f $wwwd/mysql.tar.bz2     mysql
cd /var/www
tar -jpc -f $wwwd/html.tar.bz2     html cgi-bin
cd /
tar -jpc -f $others/etc.tar.bz2    etc
cd /usr/
tar -jpc -f $others/local.tar.bz2    local
# 2. 關於使用者參數方面
cp -a /etc/{passwd,shadow,group}    $userinfod
cd /var/spool
tar -jpc -f $userinfod/mail.tar.bz2    mail
cd /
tar -jpc -f $userinfod/home.tar.bz2    home
cd /var/spool
tar -jpc -f $userinfod/cron.tar.bz2    cron at
[root@www ~]# chmod 700 /backup/backupwk.sh
[root@www ~]# /backup/backupwk.sh  <==記得自己試跑看看!
==========================================================
二、每日備份資料的脚本
再來,繼續提供一下每日備份資料的腳本程式!請注意,鳥哥這裡僅有提供 MySQL 的資料庫備份目錄, 與 WWW 的類似留言版程式使用的 CGI 程式與寫入的資料而已。 如果你還有其他的資料需要每日備份,請自行照樣造句囉! ^_^
1、backupday.sh
================================================
[root@www ~]# vi /backup/backupday.sh
#!/bin/bash
# =========================================================
# 請輸入,你想讓備份資料放置到那個獨立的目錄去
basedir=/backup/daily/  #<==你只要改這裡就可以了!
# =========================================================
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2
basefile2=$basedir/cgi-bin.$(date +%Y-%m-%d).tar.bz2
[ ! -d "$basedir" ] && mkdir $basedir
# 1. MysQL (資料庫目錄在 /var/lib/mysql)
cd /var/lib
tar -jpc -f $basefile1 mysql
# 2. WWW 的 CGI 程式 (如果有使用 CGI 程式的話)
cd /var/www
tar -jpc -f $basefile2 cgi-bin
================================================
2、接着执行下面语句:
[root@www ~]# chmod 700 /backup/backupday.sh
[root@www ~]# /backup/backupday.sh  #<==記得自己試跑看看!
上面的腳本可以在底下的連結取得。這樣一來每天的 MySQL 資料庫就可以自動的被記錄在 /backup/daily/ 目錄裡頭啦!而且還是檔案名稱會自動改變的呦!呵呵!我很喜歡!OK!再來就是開始讓系統自己跑啦! 怎麼跑?就是 /etc/crontab 呀!提供一下我的相關設定呦!
3、[root@www ~]# vi /etc/crontab
# 加入這兩行即可 (請注意你的檔案目錄!不要照抄呦!)
30 3 * * 0 root /backup/backupwk.sh
30 2 * * * root /backup/backupday.sh
這樣系統就會自動的在每天的 2:30 進行 MySQL 的備份,而在每個星期日的 3:30 進行重要檔案的備份!呵呵!你說,是不是很容易呢!但是請千萬記得呦!還要將 /backup/ 當中的資料 copy 出來才行耶!否則整部系統死掉的時候...那可不是鬧著玩的! 所以鳥哥大約一個月到兩個月之間,會將 /backup 目錄內的資料使用 DVD 複製一下,然後將 DVD 放置在家中保存!這個 DVD 很重要的喔!不可以遺失,否則系統的重要資料 (尤其是帳號資訊) 流出去可不是鬧著玩的!
4、Tips:
有些時候,你在進行備份時,被備份的檔案可能同時間被其他的網路服務所修改喔! 舉例來說,當你備份 MySQL 資料庫時,剛好有人利用你的資料庫發表文章,此時, 可能會發生一些錯誤的訊息。要避免這類的問題時,可以在備份前,將該服務先關掉, 備份完成後,再啟動該服務即可!感謝討論區 duncanlo 提供這個方法!
三、遠端備援的 script
假設你要上傳的資料是將 /backup/weekly/ 目錄內的檔案統整為一個 /backup/weekly.tar.bz2 , 並且上傳到伺服器端的 /home/backup/ 底下,使用的帳號是 dmtsai ,密碼是 dmtsai.pass 。 那麼你可以這樣做看看:
[root@www ~]# vi /backup/ftp.sh
#!/bin/bash
# ===========================================
# 先輸入系統所需要的資料
host="192.168.1.100"        # 遠端主機
id="dmtsai"            # 遠端主機的 FTP 帳號
pw='dmtsai.pass'        # 該帳號的密碼
basedir="/backup/weekly"    # 本地端的欲被備份的目錄
remotedir="/home/backup"    # 備份到遠端的何處?

# ===========================================
backupfile=weekly.tar.bz2
cd $basedir/..
tar -jpc -f $backupfile $(basename $basedir)
ftp -n "$host" > ${basedir}/../ftp.log 2>&1 <<EOF
user $id $pw
binary
cd $remotedir
put $backupfile
bye
EOF
==========================
* 使用 rsync 上傳備份資料
另一個更簡單的方法就是透過 rsync ,但是你必須要在你的伺服器上面取得某個帳號使用權後, 並讓該帳號可以不用密碼即可登入才行!這部分得要先參考伺服器篇的遠端連線伺服器才行! 假設你已經設定好 dmtsai 這個帳號可以不用密碼即可登入遠端伺服器,而同樣的你要讓 /backup/weekly/ 整個備份到 /home/backup/weekly 底下時,可以簡單這樣做:
=================================
[root@www ~]# vi /backup/rsync.sh
#!/bin/bash
remotedir=/home/backup/
basedir=/backup/weekly
host=127.0.0.1
id=dmtsai
=================================
# 底下為程式階段!不需要修改喔!
rsync -av -e ssh $basedir ${id}@${host}:${remotedir}
由於 rsync 可以透過 ssh 來進行鏡像備份,所以沒有變更的檔案將不需要上傳的!相當的好用呢! 好了!大家趕緊寫一個適合自己的備份 script 來進行備份的行為吧!重要重要喔!

这篇关于鸟哥备份方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931910

相关文章

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关