backup and update the backup file
What is the best way to backup a directory? tar?
Is "tar" capable of updating an old archive with newer files without creating a new archive? Doris |
Hi Doris,
tar can replace files in principle, but since you almost certainly want a compressed archive, it's not practical. What you should look at are incremental backups, like do a full backup once a month or so and then daily backups of just the files that changed. tar supports that nicely; I have been running my backups this way for years. If you like, I can give you my script that does that. mlp |
|
I vote for a post! That would be cool info to have and use.
Cool |
Ok here it comes - there is the preamble-style define section for all customizations; you can easily tweak it for your purposes.
Some comments: The script goes through all directories underneath TOPDIR (/home). The BACKUPDIR (/backup/incremental) is another disk where the backups go. For each run of the script (at this point, I run it every Saturday night from cron), it creates a new directory in BACKUPDIR (such as "2002-08-25" this night) from the date. The way the date is used, you cannot run this more than once a day (generates just one directory for a given day). The find command in the for loop finds all top-level user directories (the -name cuts out the "." and ".."), minus the "lost+found". Since we need to allow for tar files larger than 2GB, I tar the contents to stdout, pipe into gzip and then split into 2 million bytes chunks. Note the trailing "." in the filename -- split (which reads from stdin) then makes user_2002-08-25.tar.gz.aa, bb, cc and so on. Usually, for small enough directories, you just get the .aa file. If you happen to have more and need to restore, you just cat user_2002-08-25.tar.gz.* | tar xv ... If you want a full backup (I usually go 1 full, 7 incrementals), just blow away the contents of the "INCREMENTALSINFO" directory - no info about incrementals equals a full backup. Hope it's useful, Martin Quote:
|
All times are GMT -5. The time now is 12:38 PM. |