need to backup system to a directory on my system


I need to backup my whole system to a directory on my system.

I have root access to my remotely located dedicated server.  I have 2 gigs of stuff on there and I connect to the Internet with a modem, so there is not way I can download a backup.  So my only option it to backup my system on my system-- better than nothing.

How can I do this?  Can I create a tar.gz file of everything  in /backup/ ?

LVL 16
Who is Participating?

Improve company productivity with a Business Account.Sign Up

stanford_16Connect With a Mentor Commented:

To answer your latest question:  Yes, the command you typed:

#tar -czpsf /backup/aug27.tgz --compress --same-owner --exclude-from /backup/

Will do what you want it to do.  However, I have a suggestion for a more robust solution.  rdiff-backup is a program designed for mirroring one directory to another.  It fulfills both your initial requirement (backing up the system to a directory while preserving subdirectories, hard links, dev files, permissions, uid/gid ownership, and modification times) as well as two others you may not have considered:

1.  It uses reverse diffs, which allow you to recover deleted files and restore system configurations.

2.  It can be easily modified to transfer the data over a network when you wish to do so.

Here's the link:

Good luck!
tar -cf backup.tar /backup

then gzip -d9 backup.tar

that should work
you can do it in one command

tar -cvzf bkp.tar.gz /backup

or zip with bzip2

tar -cvjf bkp.tar.bz2 /backup
A proven path to a career in data science

At Springboard, we know how to get you a job in data science. With Springboard’s Data Science Career Track, you’ll master data science  with a curriculum built by industry experts. You’ll work on real projects, and get 1-on-1 mentorship from a data scientist.

hankknightAuthor Commented:

    tar -cvzf bkp.tar.gz /backup

preserve all permissoins and ownership correctly?
hankknightAuthor Commented:
By the way, it looks like your suggestions will just backup the contents of /backup/

I want to backup EVERYTHING and place a tar.gz of the backup of everything in /backup/
try doing:
tar -cf backup.tar  /

then gzip -d9 backup.tar

then cp backup.tar.gz /boot
zip -R /mydir/backup /*
hankknightAuthor Commented:
Is there a one-step process for a gzip tar that will preserve permissions and ownership?
while tarring  you may like to exclude the /backup directory

i mena you really dont want to take a backup of the backup directory ..
you will run out of space very soon

gnu tar has -exclude option to exclude a directiry

for permission

from tar manpage ( GNU)

 -p, --same-permissions, --preserve-permissions
              extract all protection information
              create extracted files with the same ownership
1. tar/gzip will do fine.
tar --exclude /backup -czf /backup/files-0`date +%w`.tgz  /
this command will give you full backups for every weekday, if you need that.

2. I recommend at least backing up to a different partition (if possible, on a different harddrive) that is mounted just for the time of backup. While not a magic bullet, it might help a bit in case of a crash.

3. In my experience, if the system goes down, one may usually want to reinstall/install a newer version anyway. In that case there is only a handful of system directories you really want to save, not the whole installed application suite.

Here is a tcsh shell script for archiving I use myself:
cd /
set EXEDIR=/root/bin  # where the backup script and associated files reside;
set BKDIR=/var/backup # backup directory -- a separate partition mounted for backup time only
set DT=`/bin/date +%w` # variable part of backup filename, currently weekday number
set FS_BKFILE="fsys-${DT}.tgz"  # full filename of backup file
set INCFILES=$EXEDIR/incfiles.bk  # list of directories/files to backup
set EXCFILES=$EXEDIR/excfiles.bk  # list of dirs/files NOT to backup, this will be a subset of $INCFILES
mount $BKDIR
# status 0 - mount OK, status 32 - already mounted
if ($status == 0 || $status == 32) then
        tar -czf $BKDIR/$FS_BKFILE --files-from=$INCFILES -X $EXCFILES
        if ($status != 0) then
                echo "Error in fs backup!"
        umount $BKDIR
        echo "Couldn't mount $BKDIR for archiving!"
Also you need 2 files incfiles.bk that say which directories you will backup,
and excfiles.bk, which says which directories OF incfiles.bk you will NOT backup.
On my system these are like:
--- infciles.bk----
this will backup most system config dirs, user home dirs and web server root; adapt as needed.
/var/named is where DNS server configuration is commonly stored

--- excfiles.bk ---
this will make backup exclude all backup files (*~) as well as a web directory that holds data, which is regenerated every night anyway.

hankknightAuthor Commented:
Will this backup everything except the /backup/ directory and everything in it?

And will copy ALL files (including system files and hidden files) and preserve all ownership and permissions?

    tar -czpsf /backup/aug27.tgz mystuff/ --compress --same-owner --exclude-from /backup/

hankknightAuthor Commented:
The above had a typo.  I meant this:

tar -czpsf /backup/aug27.tgz --compress --same-owner --exclude-from /backup/
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.