การสำรองข้อมูล (Backup) ที่จริงแล้วก็คือการคัดลอกไฟล์สำคัญของเราไปเก็บไว้อีกที่หนึ่ง
เพื่อป้องกันการเสียหาย หรือสูญหายจากกรณีที่จะเกิดขึ้นได้
ทีนี้ หากเราต้องทำการคัดลอกไฟล์ใหม่ทุกครั้งที่ทำการสำรองข้อมูล
มันก็จะใช้เวลานาน ยิ่งไฟล์ที่ต้องการสำรองเก็บไว้มีขนาดใหญ่เท่าไหร่
ก็จะยิ่งใช้เวลานานมากขึ้นเท่านั้น
คำสั่ง ROBOCOPY มันสามารถช่วยแก้ไขปัญหาตรงนี้ได้
คือมันมีฟังก์ชั่นที่สามารถข้ามไฟล์ที่มีอยู่แล้ว, สามารถตรวจสอบไฟล์เดิมที่มีการแก้ไข
หรือตรวจสอบไฟล์ที่ได้ทำการลบออกไป ได้ ทำให้ในการสำรองข้อมูลในครั้งที่ 2,
3, 4 ... จะใช้เวลาน้อยลงไปมาก
ในบทความนี้จะใช้เป็น Batch file ก่อน ข้อเสียของวิธีนี้มีอย่างเดียวคือ
มันไม่มี Progress bar ที่คอยแสดงว่าขณะนี้ได้ทำการคัดลอกไฟล์ได้ถึงขั้นตอนใหนแล้ว
ถ้ามีโอกาสจะนำเสนออีกวิธีหนึ่ง ซึ่งสามารถแสดง Progress bar ได้ โดยใช้ Power shell แต่วิธีก็จะยุ่งยากนิดหนึ่ง
มาดูวิธีกันเลย
ก่อนอื่นให้ทำการสร้าง Notepad ไฟล์ขึ้นมา
จากนั้นเปิดไฟล์ Notepad ขึ้นมาแล้ว copy code ด้านล่างนี้ไปวางใน Notepad
cls
@echo off
title Backup
:ConfirmChoice
echo Backup E:\Calibrate_Plan to E:\Backup
echo Do you want to backup data (Y/N)
set /p "retV=>"
if %retV%==Y goto goBackup
if %retV%==y goto goBackup
if %retV%==n goto goEnd
if %retV%==N goto goEnd
echo Invalid choice.
goto ConfirmChoice
:goBackup
echo --------------Backup start--------------
robocopy E:\Calibrate_Plan "E:\Backup" /s /b
/xo /r:5 /w:15 /log+:e:\log.txt
echo ==============Backup is complet==============
pause
goto pexit
:goEnd
echo Cancelled backup
pause
:pexit
|
คำอธิบาย
cls
@echo off
title Backup
:ConfirmChoice
echo Backup E:\Calibrate_Plan to
echo Do you want to backup data (Y/N)
set /p "retV=>"
if %retV%==Y goto goBackup
if %retV%==y goto goBackup
if %retV%==n goto goEnd
if %retV%==N goto goEnd
echo Invalid choice.
goto ConfirmChoice
|
เป็นการถามยืนยันการสำรองข้อมูล โดยพิมพ์ Y หรือ y คือทำการสำรองข้อมูล ถ้าพิมพ์ N
หรือ
n คือยกเลิก
:goBackup
echo --------------Backup start--------------
robocopy E:\Calibrate_Plan "E:\Backup" /s /b
/xo /r:5 /w:15 /log+:e:\log.txt
echo ==============Backup is complet==============
pause
|
ส่วนนี้คือส่วนการสำรองข้อมูล โดยใช้คำสั่ง ROBOCOPY โดยค่าพารามิเตอร์ต่าง ๆ ก็จะมีดังนี้
(สามารถพิมพ์ดูค่าพารามิเตอร์ต่าง ๆ ได้โดยพิมพ์
robocopy /?)
robocopy {โฟลเดอร์ทีต้องการสำรอง} {ตำแหน่งที่จะเก็บไฟล์สำรองไว้}
{ค่าพารามิเตอร์อื่น
ๆ}
โดยใน code ตัวอย่างนี้มีพารามิเตอร์ดังนี้
ตำแหน่งต้นทางคือ E:\Calibration_Plan << เปลี่ยน Folder ที่จะทำการสำรองข้อมูลตรงนี้
ตำแหน่งปลายทางคือ E:\Backup
<< ตำแหน่งที่ต้องการเก็บไฟล์สำรองข้อมูล
**กรณีชื่อ Folder มีเว้นวรรค ให้ใส่เครื่องหมายคำพูดคร่อมไว้
"......"
/s ทำการคัดลอกทุกโฟลเดอร์ในโฟลเดอร์ต้นทาง
แต่ไม่คัดลอกโฟลเดอร์ที่ไม่มีข้อมูล
/b ทำการคัดลอกในโหมด backup
/xo ไม่เก็บไฟล์เก่าไว้
/r:5 ทำการคัดลอกซ้ำ 5 รอบ กรณีติดปัญหาในการคัดลอก
/w:15 เวลาในการรอ กรณีติดปัญหาในการคัดลอก
/log+ กำการเก็บ log file ไว้ที่ e:\ ไฟล์ชื่อ log.txt
อาจจะทดลองเพิ่มหรือลดค่าพารามิเตอร์ได้นะครับ
ทำการ Save as เป็นไฟล์ใหม่ โดยกำหนดนามสกุลให้เป็น .bat
ก็จะได้ Batch file ขึ้นมา
การใช้งานก็เพียงทำการคลิ๊กขวาแล้วเลือก "Run as
administrator"
เลือก "Run as administrator" |
ถามยืนยันการสำรองข้อมูล |
เมื่อทำการสำรองข้อมูลเสร็จแล้ว |
ตัวอย่าง Log file |
**ข้อควรระวัง กรณีไปเจอวิธีการลักษณะนี้ แต่ไม่แน่ใจใน Code อย่ากด Run code นั้นในเครื่องของท่าน เพราะ code
ดังกล่าวอาจจะส่งผลกระทบต่อเครื่องท่านได้
**ไม่ควรสำรองข้อมูลไว้ใน HDD ลูกเดียวกัน เพราะหาก HDD พังข้อมูลที่สำรองไว้ก็จะหายไปด้วย
ในบทความเป็นเพียงตัวอย่างนะครับ
>>Recommend : ROBOCOPY with progress bar<<
>>Recommend : ROBOCOPY with progress bar<<
ความคิดเห็น
แสดงความคิดเห็น