mysql c api 設定執行時的 timeout 時間

int fnSetTimeout(int timeout) { char **row; char sql[100]; char data[200]; sprintf(sql,”set session wait_timeout=%d”,timeout); if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) { printf(“FAILED : %s\n”,sql); exit(3); } sprintf(sql,”set session interactive_timeout=%d”,timeout); if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) { printf(“FAILED : %s\n”,sql); exit(3); } strcpy(sql,”select @@session.interactive_timeout” ); if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) […]

用dd將硬碟直接備份到另外一顆硬碟 / How To Do Eveything With DD

主要的功能是使用 if= (輸入檔) 及 of= (輸出檔)。預設 dd會自stdin讀取,並寫入stdout中。以下為一些 dd的使用範例: 將硬碟直接備份到另外一顆硬碟 # dd if=/dev/hda of=/dev/sda conv=noerror,sync bs=4k 這個命令常用來將(/dev/hda)直接備份至(/dev/sda)磁碟。(通常裝置名稱/dev/hda為IDE硬碟,而/dev/sda常是USB儲存碟。)這個指令只有在磁碟有足夠夠空間儲存來源磁碟的整個檔案系統時才能使用。其優點是你不必將磁碟掛上來進行備分, and the only reference to hda is in /dev and in the command which is usually in a script in cron. 其中的參數”bs=4k”是用來指定拷貝中所用block的大小。dd指令預設中為512 bytes:使用小的block會明顯地導致拷貝速度變慢。然而,使用大的block則可能會在遇到錯誤時,block其餘部分都被填入zero-bytes。因此,如果你在拷貝一個有問題的裝置時增加你的block大小,你可能會遺失較多的data,雖然你可以花較短的時間在嘗試讀取破損的磁區。其他工具如dd_rescue 與 dd_rhelp 可在這種情況下提供更為彈性的解決方案,在無錯誤的磁區得以大block的速度進行,而有問題的區域則採小block拷貝。 建立硬碟的映像檔 # dd if=/dev/hda | gzip > /mnt/hdb1/system_drive_backup.img.gz 在此處,用dd 來製作一個第一部硬碟的影像檔,並且將其結果導入gzip壓縮程式。其產生的壓縮結果則被置於另一磁碟的一個檔案中。反向的程序方法: # gzip -dc […]