Five ways to backup your Linux Computer or Server using bash.

Using “DD”

Make a backup of a local hard disk on remote host via ssh.

user@server:$ dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'

Backup content of the hard drive to a file.

user@server:$ dd if=/dev/sda of=/tmp/file1

Make a copy of MBR (Master Boot Record) to floppy.

user@server:$ dd if=/dev/hda of=/dev/fd0 bs=512 count=1

Restore MBR from backup copy saved to floppy.

user@server:$ dd if=/dev/fd0 of=/dev/hda bs=512 count=1

Using “Dump”

Make a full backup of directory ‘/home’.

user@server:$ dump -0aj -f /tmp/home0.bak /home

Make a incremental backup of directory ‘/home’

user@server:$ dump -1aj -f /tmp/home0.bak /home

Restoring a backup interactively.

user@server:$ restore -if /tmp/home0.bak

Using “Rsync”

Synchronization between directories.

user@server:$ rsync -rogpav --delete /home /tmp

Rsync via SSH tunnel.

user@server:$ rsync -rogpav -e ssh --delete /home ip_address:/tmp

Synchronize a local directory with a remote directory via ssh and compression.

user@server:$ rsync -az -e ssh --delete ip_addr:/home/public /home/local

Synchronize a remote directory with a local directory via ssh and compression.

user@server:$ rsync -az -e ssh --delete /home/local ip_addr:/home/public

Using “tar”

Make a incremental backup of directory ‘/home/user’

user@server:$ tar -Puf backup.tar /home/user

For more or better ways to backup your system using tar look here.

Using “SSH”

Copy content of a directory on remote directory via ssh.

user@server:$ ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'

Copy a local directory on remote directory via ssh.

user@server:$ ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'

Local copy preserving permits and links from a directory to another.

user@server:$ tar cf - . | (cd /tmp/backup ; tar xf - )
| More