linux系統(tǒng)自帶crontab計(jì)劃任務(wù),可以滿足你的需求。
成都創(chuàng)新互聯(lián)公司是專業(yè)的織金網(wǎng)站建設(shè)公司,織金接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行織金網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
編輯crontab配置文件的方法是:
crontab -e
編輯完成后,用:x組合鍵關(guān)閉并保存。不需要重啟操作,時(shí)間到了以后,系統(tǒng)會(huì)自動(dòng)調(diào)用定時(shí)任務(wù)。
示例,在凌晨4點(diǎn)重啟lighthttpd:
0 4 * * * /usr/local/etc/rc.d/lighttpd restart
將命令的路徑改為你寫的備份腳本。
望采納!
先說代碼,我看了一下,代碼沒什么問題,至于你說的不備份,原因可能如下:
查詢無(wú)結(jié)果,測(cè)試辦法是在最外層的那個(gè)while語(yǔ)句結(jié)束后輸出查詢語(yǔ)句,即:
while?($t?=?mysql_fetch_array($q1))
{
//里面的代碼
}
echo?$mysql;//在這里輸出查詢結(jié)果,如果結(jié)果正常,則說明查詢有結(jié)果
$filename?=?"autobackup.sql";?//存放路徑,默認(rèn)存放到項(xiàng)目最外層
然后就是另一個(gè)問題了,目標(biāo)文件不可寫,你可以參考下面這樣的代碼
$filename?=?"autobackup.sql";?//存放路徑,默認(rèn)存放到項(xiàng)目最外層
if(!file_exists($filename)?||?is_writable($filename))//如果文件不存在或可寫
{
$fp?=?fopen($filename,?'w');//打開或創(chuàng)建可寫文件
$mysql=str_replace("','','');","',null,null);",$mysql);
fputs($fp,?$mysql);//寫入
fclose($fp);
}
else
{
echo?"文件?$filename?不存在或不可寫";
}
如果嘗試發(fā)現(xiàn)仍有問題,請(qǐng)?jiān)僮穯?/p>
1、如果服務(wù)器允許mysqldump 并且沒有禁止PHP的shell_exec()這個(gè)函數(shù)的話
直接在PHP里面執(zhí)行mysqldump就可以了。
2、通過mysql_query('show tables')的返回值遍歷每個(gè)表,循環(huán)對(duì)每個(gè)表使用查詢語(yǔ)句
select * into outfile '路徑/文件名' from 表名
缺點(diǎn)是這樣得到的是純數(shù)據(jù),恢復(fù)數(shù)據(jù)的時(shí)候你需要額外再寫腳本
3、同樣通過show tables返回表名,遍歷每個(gè)表,通過select 語(yǔ)句查詢,然后逐條結(jié)果處理,比如手工添加drop table 和create table 以及insert into等等,然后再寫入文件。這樣得到的備份數(shù)據(jù)是比較接近mysqldump的結(jié)果的,各種工具都可以用來(lái)恢復(fù)數(shù)據(jù)。缺點(diǎn)是如果數(shù)據(jù)庫(kù)太大的話,效率不好說
使用mysqldump函數(shù)
mysqldump -u username -p dbname table1 table2 ... ? BackupName.sql
dbname參數(shù)表示數(shù)據(jù)庫(kù)的名稱
table1和table2參數(shù)表示需要備份的表的名稱,為空則整個(gè)數(shù)據(jù)庫(kù)備份;
BackupName.sql參數(shù)表設(shè)計(jì)備份文件的名稱,文件名前面可以加上一個(gè)絕對(duì)路徑。通常將數(shù)據(jù)庫(kù)被分成一個(gè)后綴名為sql的文件。
備份數(shù)據(jù)庫(kù)的主要過程:
切換到對(duì)應(yīng)的數(shù)據(jù)庫(kù);
使用show create table ?tableName,獲得表結(jié)構(gòu),寫到文件中;
然后查詢所有的表數(shù)據(jù),循環(huán)生成相對(duì)應(yīng)sql語(yǔ)句,寫到文件中;
試運(yùn)行生成的sql文件。