llarava
asked on
How to use Robocopy to run differential copies once a full backup is completed?
Hi,
I have two USB disk attached to a server. I have copied all the data from disk E: to disk F: I want now to setup Robocopy in order to run diferential copies from E: to F:
The goal would be to use a batch or vbs to run robocopy and the right switches in order to copy all the changes. Once I have the script I will run a scheduled task.
Could someone help me out.
I have two USB disk attached to a server. I have copied all the data from disk E: to disk F: I want now to setup Robocopy in order to run diferential copies from E: to F:
The goal would be to use a batch or vbs to run robocopy and the right switches in order to copy all the changes. Once I have the script I will run a scheduled task.
Could someone help me out.
ASKER
I have copied the data with copy/paste. Would this "robocopy e:\ F:\ * /E /copy:dat" copy the incremental changes that will occur on a daily basis on disk F: to disk F: ?
incremental changes from disk e: to f:
robocopy e:\ F:\ * /XO (as in eXclude Older)
robocopy e:\ F:\ * /XO (as in eXclude Older)
The copy and paste altered the timestamps such that F: will likely reflect all files as being on the copy date.
robocopy will automatically check whether the source file is newer than the file at the destination and will overwrite it when it is.
I do not believe you need to use the /XO option.
Try a test run by adding a /L to the command provided earlier.
It will list what it would do but without performing the copying task.
The main question deals with /COPY i.e. what are the security settings that you want to maintain for the copy.
robocopy will automatically check whether the source file is newer than the file at the destination and will overwrite it when it is.
I do not believe you need to use the /XO option.
Try a test run by adding a /L to the command provided earlier.
It will list what it would do but without performing the copying task.
The main question deals with /COPY i.e. what are the security settings that you want to maintain for the copy.
ASKER
I found this script which is perfect to do what I wanted to do. I ran it and ALL the data was copied from E: to F:\backups as expected.
I would like to modifiy the switches so that only incremental changes are copyed over once the script is executed.
Any idea on how to add the switches that were suggested to the script?
I would like to modifiy the switches so that only incremental changes are copyed over once the script is executed.
Any idea on how to add the switches that were suggested to the script?
@ECHO OFF
SETLOCAL
SET _source=E:\
SET _dest=F:\backups
SET _what=/COPYALL /B /SEC /MIR
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode.
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree
SET _options=/R:0 /W:0 /LOG:MyLogfile.txt /NFL /NDL
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging
ROBOCOPY %_source% %_dest% %_what% %_options%
Remove the /B option.
Run with the /L option the example I provided and you should see that only modified files will be copied.
No purging of deleted files will take place.
ASKER
I have adde the /L to the script but it does not work, however just forget about the script.
For simplicity I will just use the command you have suggested.
Here is what I have done:
1.) Copy the data over from E: to F: (copy/paste)
2.) Create a new file on the source E:
3.) Run the following command "robocopy e:\test F:\backups\test * /L"
This is the output that I am getting (see the file attached)
I am not sure if the output indicates that there is a new file it does not look clear to me.
/L seems to list but not to copy how do I run the incremental copy?
Thank you
7-2-2010-10-56-28-AM.jpg
ASKER
robocopy e:\test /MIR /NP F:\backups\test
So far this seems to work. The first time it copies all the files and the next time it runs it copies only those that have been changed on the source to the target.
So far this seems to work. The first time it copies all the files and the next time it runs it copies only those that have been changed on the source to the target.
ASKER
Does someone know how can I get the output from the command line window copied to a log file once the job is completed.
You can use the /LOG:"path_and_filename"
To test you should run
robocopy e:\ f:\backup * /E /L
The output will include all the files in E:\ that are already on F:\backup but will not copy them. The new entries will be referenced as new directory new file, etc.
The problem with the test you tried is that you went into a subdirectory with a single file which means that it only needs to create the directory and then copy the file.
Note the use of the /MIR option will remove files that are not in the source but are at the destination.
To test you should run
robocopy e:\ f:\backup * /E /L
The output will include all the files in E:\ that are already on F:\backup but will not copy them. The new entries will be referenced as new directory new file, etc.
The problem with the test you tried is that you went into a subdirectory with a single file which means that it only needs to create the directory and then copy the file.
Note the use of the /MIR option will remove files that are not in the source but are at the destination.
ASKER
I have made done the setup as follows:
robocopy e:\test /MIR /NP F:\backups\test /LOG:C:\logs\logfile.txt
However this will overwrite the existing log from previous jobs
Is there a way to keep the existing logs? I think this will do it however I am not sure how does the switch works.
/LOG+:file : Output status to LOG file (append to existing log).
robocopy e:\test /MIR /NP F:\backups\test /LOG:C:\logs\logfile.txt
However this will overwrite the existing log from previous jobs
Is there a way to keep the existing logs? I think this will do it however I am not sure how does the switch works.
/LOG+:file : Output status to LOG file (append to existing log).
You can use system variables i.e. %date% %time% as part of the name
/MIR will remove files that are present at the destination, but not at the source.
Try:
robocopy e:\test /MIR /NP F:\backups\test /LOG:"C:\logs\logfile-%dat e% %time%.txt"
/MIR will remove files that are present at the destination, but not at the source.
Try:
robocopy e:\test /MIR /NP F:\backups\test /LOG:"C:\logs\logfile-%dat
ASKER
Here is output I get when I run the command:
robocopy e:\ /MIR /NP F:\backups /LOG C:\logfile-%date% %time%.txt"
-------------------------- ---------- ---------- ---------- ---------- ---------- ---
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------- ---------- ---------- ---------- ---------- ---------- ---
Started : Tue Jul 06 16:24:55 2010
Source - e:\
Dest - F:\backups\
Files :
Options : /S /E /COPY:DAT /PURGE /MIR /NP /R:1000000 /W:30
-------------------------- ---------- ---------- ---------- ---------- ---------- --
ERROR : Invalid Parameter #5 : "/LOG"
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
robocopy e:\ /MIR /NP F:\backups /LOG C:\logfile-%date% %time%.txt"
--------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
--------------------------
Started : Tue Jul 06 16:24:55 2010
Source - e:\
Dest - F:\backups\
Files :
Options : /S /E /COPY:DAT /PURGE /MIR /NP /R:1000000 /W:30
--------------------------
ERROR : Invalid Parameter #5 : "/LOG"
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
The format should be:
robocopy source destination pattern [options]
The below deals with reformating the %date% output string to replace the space with an underscore as well as converting the / which is being interpreted by robocopy as options into -
within your script prior to calling robocopy:
set date_variable=%date:/=-%
set date_variable=%date_variab le: =_%
The above will convert the Tue 07/06/2010 into Tue_07-06-2010
then run
robocopy e:\ f:\backups * /MIR/NP /L /LOG:c:\logfile-%date_vari able%.log
note the addition of /L just to make sure it works before you run it.
This will generate a new log file as long as the script is run once a day.
robocopy source destination pattern [options]
The below deals with reformating the %date% output string to replace the space with an underscore as well as converting the / which is being interpreted by robocopy as options into -
within your script prior to calling robocopy:
set date_variable=%date:/=-%
set date_variable=%date_variab
The above will convert the Tue 07/06/2010 into Tue_07-06-2010
then run
robocopy e:\ f:\backups * /MIR/NP /L /LOG:c:\logfile-%date_vari
note the addition of /L just to make sure it works before you run it.
This will generate a new log file as long as the script is run once a day.
ASKER
Hi,
This is what I the bat file contains:
set date_variable=%date:/=-%
set date_variable=%date_variab le: =_%
robocopy e:\ f:\backups * /MIR/NP /L /LOG:c:\logfile-%date_vari able%.log
However I am still getting the same error message.
C:\Documents and Settings\Administrator.SYR ACUSE\Desk top>roboco py e:\ f:\backups
* /MIR/NP /L /LOG:c:\logfile-Wed_07-07- 2010.log
-------------------------- ---------- ---------- ---------- ---------- ---------- ---
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------- ---------- ---------- ---------- ---------- ---------- ---
Started : Wed Jul 07 09:25:38 2010
Source - e:\
Dest - f:\backups\
Files : *
Options : /COPY:DAT /R:1000000 /W:30
-------------------------- ---------- ---------- ---------- ---------- ---------- --
ERROR : Invalid Parameter #4 : "/MIR/NP"
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
/MIR :: Mirror a complete directory tree.
For more usage information run ROBOCOPY /? or read Robocopy.Doc.
NOTE: Read "True Replication" in Robocopy.Doc prior to first use of /MIR !
**** /MIR can DELETE files as well as copy them !
Any ideas of what am I doing wrong?
This is what I the bat file contains:
set date_variable=%date:/=-%
set date_variable=%date_variab
robocopy e:\ f:\backups * /MIR/NP /L /LOG:c:\logfile-%date_vari
However I am still getting the same error message.
C:\Documents and Settings\Administrator.SYR
* /MIR/NP /L /LOG:c:\logfile-Wed_07-07-
--------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
--------------------------
Started : Wed Jul 07 09:25:38 2010
Source - e:\
Dest - f:\backups\
Files : *
Options : /COPY:DAT /R:1000000 /W:30
--------------------------
ERROR : Invalid Parameter #4 : "/MIR/NP"
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
/MIR :: Mirror a complete directory tree.
For more usage information run ROBOCOPY /? or read Robocopy.Doc.
NOTE: Read "True Replication" in Robocopy.Doc prior to first use of /MIR !
**** /MIR can DELETE files as well as copy them !
Any ideas of what am I doing wrong?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
the same definition you use to copy the entire data first,
robocopy e:\ F:\ * /E /copy:dat
You could use the /mon:number_of_changes or /mot:numberof_minutes_befo
http://www.mydigitallife.info/2007/05/07/robocopy-syntax-command-line-switches-and-examples/