網頁

2013年1月28日 星期一

Windows 底下的檔案備份方式跟排程備份

在 Windows 底下有提供一些(真的不是很多)檔案備份的功能不過都是針對整個系統或是硬碟備份這樣的方式對需要部份檔案備份或是需要排定排成讓系統自動備份來說就需要借助第三方軟體來完成難道就沒有其他方式來備份自己想要備份的檔案或是目錄嗎?

有!!! windows command 有一個命令叫做 XCOPY 這一個就可以讓你複製(備份) 檔案目錄到你想要的地方存放

怎樣用? 很簡單建立一個批次檔 .bat 然後執行就可以比方說我要備份 E: 磁碟機的 project 目錄底下所有的檔案到我的 NAS 機器上面的 projects 目錄底下NAS 的網路磁碟路徑為 \\nas

這樣我要下達的命令寫法就是:

xcopy E:\project \\nas\projects /D/K/E/Y/C/I/H

/D : 只複製比目的檔還新的檔案。這個很重要, 沒有更動過的檔案就不需要重新複製了
/K : 複製後檔案屬性不變
/E  : 包含子目錄
/Y  : 不要求確認
/C  : 錯誤發生也繼續
/I   : 目的不存在就建立資料夾
/H  : 複製隱藏檔和系統檔。

接著我們就可以讓這個批次檔加入到系統排定工作中設定好要執行的時間跟週期以後就讓系統定時開始執行了。所以我們可以設定好幾個不同的批次檔內容,比方說 : 

xcopy D:\profile \\nas\backup\profile /D/K/E/Y/C/I/H
xcopy E:\project \\nas\backup\projects /D/K/E/Y/C/I/H
xcopy F:\backup \\nas\backup\others /D/K/E/Y/C/I/H

這樣就可以在一個排程時段中執行一堆備份動作

設定系統排程有些要注意的地方,如果你的批次檔複製備份的檔案相當多就要將類似的排程時間錯開以免影響系統的效能。建議最好是選擇沒有在使用電腦的時段來進行工作

CI 中刪除多筆資料的用法

在 CI 中刪除單筆資料可以使用

$this->db->delete("table", array("id"=>8));

的方式來刪除.  但是當遇到多筆資料要刪除時就要加入判斷函數 where_in()

$delrec = array(3,4);
$this->db->where_in("id", $delrec);
$this->db->delete("table");

這樣就可以刪除掉多筆資料.