Posts Tagged ‘ linux

Backup to a remote system with netcat and tar

I use to say “backup is only for wimps”. But to be honest, I do backups. And I even store the backup media in a save place.

To get the data onto a backup device and put that one to a save place, sometimes you have to write the backup over the network.

netcat or nc, the swiss army knife of networking is a big help for that.

On the remote system, where you want to write the backup start netcat:

nc -l -p 12345 > /var/backup/name-of -the-backup-2010-08-18.tgz
  • -l means listen
  • -p <number> is the port, where nc listens.

On the system you want to backup  you can exclude some directories, like /proc and /sys from being backed up. So run:

echo "./proc
./sys
./tmp" > /tmp/X

Now it is time to start the backup:

cd /
tar -X /tmp/X -czpf - . | nc 11.12.13.14 12345

So you cd into the root directory, exclude the files listed in /tmp/X, write the backup to STDOUT  and backup everything under the current directory. The backup is done relative.

Of course, you could use a backup command like tar -czpf – /,  but then the backup is done absolute. You realize the advantage of doing relative backups, when you want to restore the backup into a directory. With an absolute backup everything is written back to the original location.

pcap filter

tcpdump and ngrep are both based on libpcap. Therefore both use the same filter expressions.

Here is the manual page of the pcap filter expression.

Calculate File Checksums with openssl

If you need to calculate the checksum of a file on Mac or UNIX simply use openssl:

openssl md5 DeleteCookies.zip
openssl sha DeleteCookies.zip

This command gives you the checksum of the file as a result.

Using chmod

chmod is the tool to change the permission on UNIX based systems.

For the options consult wikipedia.

Why is it worth to mention it here? If you change the permissions recusively ofer a directory tree, usually you do not have the right permissions for directories and for regular files.

You can avoid that by using find, as shown in the example:

find . -type d -print | xargs chmod 755
find . -type f -print | xargs chmod 644

Type “d” applies the change to directories, whereas type “f” applies it to files. find “.” means to all files starting in the current directory.