Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have googled and searched, but can't find the command that 7zip command line utility uses for making incremental backups. So can someone please share the command ?

Thanks

btw I found this link: http://wmug.co.uk/wmug/b/sean/archive/2009/03/20/powershell-amp-7zip-incremental-backup-solution.aspx . But it seems to be for differential backups, even though it says incremental.

share|improve this question

2 Answers 2

If you where to do an incremental backup, you would need to provide 7-zip with the list of the files modified (with -i@fileList), and you would need to elaborate such list somehow. At http://superuser.com/a/862394/476076 you can find some unix/cygwin command line which would use md5 signatures to create the fileList.

7-zip update operation allows to create a secondary archive with the differences (including deleted files) occurred since the base/primary archive. That is properly named a differential backup (as stated in the question itself).

I've found an excellent article on this topic at WPCTips "Differential Backups with 7-zip". They recommend either using a GUI program (Toucan), or use this recipe for the command line:

7z u {base archive.7z} {folder to archive} -u- -up0q3r2x2y2z0w2!{differential.7z}

This is a bit different from the 7zr u -up0q3r2x2y2z1w2 {archive}.7z {path} proposed by ArtemGr:

  • -u- tells the main archive should not be modified
  • -up0q3r2x2y2z0w2!{differential.7z} specifies the target differential archive, and what action to do for each file for each condition/state: add files which are new or modified in the filesystem, remove files which are only in the 7zip archive, ignore the rest.

Just in case you are curious about the specifics of that cryptic p0q3r2x2y2z0w2

<state> | State condition
p | File exists in archive, but is not matched with wildcard.   Exists, but is   not matched 
q | File exists in archive, but doesn't exist on disk.
r | File doesn't exist in archive, but exists on disk.
x | File in archive is newer than the file on disk.
y | File in archive is older than the file on disk.
z | File in archive is same as the file on disk
w | Can not be detected what file is newer (times are the same, sizes are different)

<action> | Description 
0 | Ignore file (don't create item in new archive for this file) 
1 | Copy file (copy from old archive to new) 
2 | Compress (compress file from disk to new archive) 
3 | Create Anti-item (item that will delete file or directory during extracting). This feature is supported only in 7z format. 
share|improve this answer
1  
Thank you for the answer Javier, and welcome to Super User. There is a policy here of summarising links in case they disappear- could you explain how the command achieves the incremental backup? (particularly the up0q3r2x2y2z0w2 part!) Thanks :-) –  bertieb Aug 2 at 18:48
    
@bertieb thank you for advice. I hope it is more clear now. –  Javier Aug 2 at 19:25
    
Thanks for the edit, have a +1 :) –  bertieb Aug 2 at 20:25

Should be simple, use this to create and incrementally update the archive:

7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}

This page offers a reference for update options

share|improve this answer
    
Hello, what do those many options mean? –  Zhianc Apr 27 at 7:34
    
It's a map from a file state to an action. There are seven possible states. –  ArtemGr Apr 27 at 12:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.