2011-02-25 60 views

回答

2

你可以只寫一個腳本,做一個mysqldump的,然後發電子郵件給你的文件...你居然問別人給你這樣一個腳本,還是你問如何把它變成cron的?

+0

@hey我會用馬克B的解決方案,並使用他人的解決方案(使用crontab -e命令),它粘成的cron:d – vmpstr 2011-02-25 16:39:45

0

包括在crontab

@daily PHP php_file.php以下|郵件-E -S「主題行」 [email protected]

郵件發送電子郵件的程序,它會讀取從標準輸入正文和-s定義的主題行。 -E表示只有在發送正文文本時才發送電子郵件,您可能需要也可能不需要。

4

你是什麼意思,「所有數據庫」?你想要在服務器中保存數據庫的列表嗎?他們的內容轉儲?你不需要爲PHP,你可以簡單地使用shell腳本:

mysqldump -p -u username_to_do_dump_with --all-databases | mail [email protected] -s 'database dumps' 

簡而言之:MySQL的轉儲內舉行的所有數據庫,通過管道將輸出到郵件程序,這將轉儲到你。當然,如果你有很多數據(尤其是如果你在數據庫中存儲文件的話),你最終會得到一個巨大的電子郵件,並且如果有任何二進制數據,電子郵件會破壞轉儲。你很可能希望通過gzip運行轉儲來減少它的邊,然後把這個.gz文件作爲附件發送出去,這需要更多的腳本來處理這個非常簡單的版本。

+0

@Marc B:它不給我一個文件,它提供了只有文字:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT = @@ CHARACTER_SET_CLIENT * /; – 2011-02-25 16:42:46

+1

雖然它不回答OP的問題,但我只是將其轉儲,gzip並將它rsync到另一臺機器。郵件似乎不是備份的正確媒介... – jeroen 2011-02-25 16:45:01

+0

@hey:轉儲到文件,gzip它,然後使用更多的shell腳本發送文件作爲附件。但就像我在我的回答中所說的那樣,您不需要PHP就可以了 - 一個簡單的shell腳本可以做到這一點比PHP更容易。 – 2011-02-25 16:57:17

0

那麼你會寫PHP腳本,首先。

然後你會放一個線在crontab是這樣的:

1 1 * * * path/to/your/script

運行一次腳本一天。

相關問題