Crontab 備份www、mysql資料夾內容有問題 [論壇 - Ubuntu基本設定]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題 回覆 發帖



Crontab 備份www、mysql資料夾內容有問題
會員一級
註冊日期:
2008/11/17 17:26
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 21
MP : 3 / 114
EXP: 86
離線
請問一下~ 我想要排程備份apacher server的 mysql資料夾與WWW資料夾

但是使用crontab時發現~除了系統的的crontab(/etc/crontab)可以排程外。

在使用者環境下或是用SSH以root登入的crontaba -e所寫的都沒有執行

而且就算利用/etc/crontab來排程~排程備份出來的tar.gz是有問題的

我測試過腳本是沒有問題~~請問一下要如何解決呢?

排程語法:(在/etc/crontab 或是以管理員root或使用者身份進入crontab -e所寫的)

00 18 * * * root /usr/bin/backweb


腳本:/usr/bin/backweb (root.root 755)
ymd=`date +%Y%m%d `

tar cvzf /backup_daily/db/mysql_db_$ymd.tar.gz /var/lib/mysql
tar cvzf /backup_daily/web/web_web$ymd.tar.gz /var/www
tar cvzf /backup_daily/phpini/phpini$ymd.tar.gz /etc/php5/apache2

2008/11/18 9:23
最後修改: 阿修 於 2008/11/21 19:18:35
應用擴展 工具箱
訪客
回覆: Crontab 無法使用
Anon:訪客
cron 是一個服務(service)名稱
/etc/crontab 為其主要設定檔

當更改設定檔後,需要重新載入或重新啟動,使其立刻生效
# /etc/init.d/cron rload

# /etc/init.d/cron restart

----------------------------------------

直接備份 mysql 資料庫(非用 sql 語法導出)
這是最簡單也最快速的備份法
但缺點是需要先關閉 mysql 服務,再備份
否則備份出來的資料庫,很有可能是錯誤的,需要修復

因為表格仍在開啟中就備份,存回去時可能被程式認為是錯誤的
另也有可能備份那瞬間,網頁正在操作資料庫
比如論壇有人正在發文寫入資料庫或其它的
將那瞬間的狀態備份下來,存回去時當然就有錯誤了
所以備份前必須先關閉 mysql 服務

然而關閉 mysql 服務,網站就會停擺...
頁面上會出現資料庫錯誤,很難看

提供我的作法給你參考:
---------------------------------
1.先建立一個備份專用的網頁目錄,比如 /var/www2。內容只有一個 index.html,畫面是:資料庫備份中,或網站維護中,請瀏覽者稍待1~2分鐘...之類的,常逛網路,這種畫面你應該見過。

2.另外要有 404.php 這個檔,404 網頁找不到功能,需於 http.conf 中開啟。內容很簡單,強制導向到 index.html,也就是網站維護中的頁面。

<?php
// Location 強迫導向,僅能使用「絕對路徑」
header ("Location: http://yourdomain/index.html") ;
exit ;
?>


3.備份前
mv /var/www /var/www3 #將原先目錄更名
mv /var/www2 /var/www #維護中頁面頂上去
這個是瞬間的,不到 0.5 秒

不管瀏覽者正在看什麼頁面,當他按下連結,因為目錄已經改變了,找不到檔案,便會得到 404 訊息。而 404 剛前面已經設定為強制導向到 index.htm 也就是:網站維護中的頁面。

4.接著關閉 mysql 服務,建議先等個 3秒,然後開始備份

/etc/init.d/mysqld stop
slee 3

5.備份完成後,照原來順序,還原回去
先啟動 msyqld,等個3~5秒,因為啟動需要時間
將 www 更名回 ww2,將 www3 更名回 www

不管如何,備份 mysql 是一定要停止服務的,除非你用 sql 語法導出或其它備援機制。

以上作法仍會使網站停擺,但是對外面的訪客來說,他們會看到網站維護中的頁面,並得知過 3分鐘後再來就可以看了,而不是資料庫錯誤的頁面。常逛網路,你應該也看過資料庫錯誤的頁面,會覺得說這個網站很不夠專業,且也不曉得啥時才會恢復。這之間的差別就是在這裡。

建議自動備份時間為當地時間凌晨 4~6 點,根據流量統計,這時段訪客人數最少,影響最小。

2008/11/18 18:59 | 75878 66430 9b1e1 2165b
應用擴展 工具箱
回覆: Crontab 無法使用
會員一級
註冊日期:
2008/11/17 17:26
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 21
MP : 3 / 114
EXP: 86
離線
但是~我現在的狀況是~我要排程備份mysql與www這兩個資料夾~

在獨立執行腳本時可以執行備份動作~備份出來的db.tar.gz與web.tar.gz解壓縮後裡面是完整的內容。

但是放入排程執行後是有備份成功,但是出來的db.tar.gz與web.tar.gz內容有問題(解tar 出來後發現mysql只有部分資料庫,web.tar.gz則是沒有內容只有20bytes)

mysql資料夾權限/群組(mysql.mysql)而www資料夾(root.root)

PS:我在腳本前後有加上 /etc/init.d/apache2 stop與 /etc/init.d/apache2 start

設定/etc/crontab環境條件 nbuntu desktop 8.04 以root身份登入desktop環境

請問一下~有人可以解疑為何會這樣呢?感謝

backweb腳本:(/usr/bin/backweb)

ymd=`date +%Y%m%d `
/etc/init.d/mysql stop
/etc/init.d/apache2 stop
tar cvzf /backup_daily/db/mysql_db_$ymd.tar.gz /var/lib/mysql
tar cvzf /backup_daily/web/web_web$ymd.tar.gz /var/www
tar cvzf /backup_daily/phpini/phpini$ymd.tar.gz /etc/php5/apache2
/etc/init.d/apache2 start
/etc/init.d/mysql start

2008/11/21 11:23
最後修改: 阿修 於 2008/11/21 13:30:16
應用擴展 工具箱
回覆: Crontab 備份www、mysql資料夾內容有問題
會員五級
註冊日期:
2007/3/29 10:54
來自 歹頑
所屬群組:
已註冊使用者
等級: 21
HP : 0 / 505
MP : 177 / 5095
EXP: 23
離線
不要停止mysql跟apache直接備份看看
試看看@@

我在想會不會那兩個目錄的內容多半是用連結過去的
所以備份的時候....

2008/11/21 17:21
cue轉mp3 Khopper, VLC原生rm支援版, 自己編譯(最佳化)Ubuntu套件 apt-build
自製品:UbunVista 1.2, 多媒體套件安裝腳本, fahmon安裝腳本(跑F@H必備)

9.10的compiz-fusion-plugins-unsupported (魚缸/飄雪)
10秒內開機進到桌面這點真的很爽快
應用擴展 工具箱
回覆: Crontab 備份www、mysql資料夾內容有問題
會員一級
註冊日期:
2008/11/17 17:26
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 21
MP : 3 / 114
EXP: 86
離線
我原先也是沒有停止apache與mysql就直接備份但視還是一樣的情況~腳本可以直接執行~

備份出來的tar.gz檔也正確~

但是~放到排程裡面備份出來的就是不行~

有tar.gz檔但內容不完全和沒有資料

我有嘗試將www資料內所有目錄檔案改成(root.root)使用者.群組 權限和mysql改成(root.mysql)

但是利用排程備份結果還是一樣,有排程備份到,但是內容資料還是和上面情況一樣是有問題的~

2008/11/21 19:15
應用擴展 工具箱
訪客
回覆: Crontab 備份www、mysql資料夾內容有問題
Anon:訪客
記得 Ubuntu 預設是不開啟 root 帳號的
sudo 可以切換到 root 帳號,但不代表 root 是開啟的
root 密碼為空,無法直接登入

好像是給 root 設密碼後,就可以開啟它
sudo passwd root

2008/11/21 20:37 | 75878 66430 9b1e1 2165b
應用擴展 工具箱
回覆: Crontab 備份www、mysql資料夾內容有問題
會員一級
註冊日期:
2008/11/17 17:26
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 21
MP : 3 / 114
EXP: 86
離線
我已經把root打開了

所以~可以以root身份登入x-windows裡面

這個狀況我已經先排除了

因為一開始第一次登入後修該root相關資料讓我可以直接以root身份登入

從apache server等安裝到新增腳本、crontab 排程等都是以root身份在x-windows下以終端機方式操作的

2008/11/22 0:17
應用擴展 工具箱
回覆: Crontab 備份www、mysql資料夾內容有問題
會員五級
註冊日期:
2007/3/29 10:54
來自 歹頑
所屬群組:
已註冊使用者
等級: 21
HP : 0 / 505
MP : 177 / 5095
EXP: 23
離線
不要起圖形介面執行看看
雖然感覺起來不太可能

還有就是今天下午上課老師有提到uid的東西
不知道有沒有關聯

2008/11/22 1:03
cue轉mp3 Khopper, VLC原生rm支援版, 自己編譯(最佳化)Ubuntu套件 apt-build
自製品:UbunVista 1.2, 多媒體套件安裝腳本, fahmon安裝腳本(跑F@H必備)

9.10的compiz-fusion-plugins-unsupported (魚缸/飄雪)
10秒內開機進到桌面這點真的很爽快
應用擴展 工具箱
回覆: Crontab 備份www、mysql資料夾內容有問題
會員一級
註冊日期:
2008/11/17 17:26
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 21
MP : 3 / 114
EXP: 86
離線
這個我也有想過

但是我本身就是用root權限操作

而且我是在x-windows下的終端機介面以root身份安裝、變更server、資料、資料夾權限等

2008/11/25 0:15
應用擴展 工具箱
訪客
回覆: Crontab 備份www、mysql資料夾內容有問題
Anon:訪客
debug 偵錯
補抓執行中的訊息(包含錯誤訊息)存到 log 檔

用大於符號,將訊息重新導向存檔
$ 指令敘述 > /root/backup-log.txt 2>&1

2008/11/25 11:23 | 75878 66430 9b1e1 2165b
應用擴展 工具箱


回覆 發帖


發表回覆
賬號用戶名   密碼   登錄
*
輸入驗證碼
(大寫數字請輸入相對應的印度/阿拉伯數字) *
     
* = 必要的
可以查看帖子.
可以發帖.
可以回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
可以不經審核直接發帖.