Difference between revisions of "Tar"
From Christoph's Personal Wiki
(→tar pipes) |
(→tar pipes) |
||
Line 3: | Line 3: | ||
==Example usage== | ==Example usage== | ||
===tar pipes=== | ===tar pipes=== | ||
+ | Is far more efficient (and with less problems) to copy files from one location (or machine) to another via tar pipes. | ||
+ | |||
*Copy everything in <code>/foo</code>, to the directory <code>/bar</code> preserving permissions and ownership: | *Copy everything in <code>/foo</code>, to the directory <code>/bar</code> preserving permissions and ownership: | ||
% (cd /foo; tar -cf - . ) | (cd /bar; tar --same-owner -xpf - ) | % (cd /foo; tar -cf - . ) | (cd /bar; tar --same-owner -xpf - ) |
Revision as of 09:46, 28 May 2007
In computing, tar (derived from tape archive) is both file format (in the form of a type of archive bitstream) and the name of the program used to handle such files.
Contents
Example usage
tar pipes
Is far more efficient (and with less problems) to copy files from one location (or machine) to another via tar pipes.
- Copy everything in
/foo
, to the directory/bar
preserving permissions and ownership:
% (cd /foo; tar -cf - . ) | (cd /bar; tar --same-owner -xpf - )
- You can also use a tar pipe to copy across the network:
% (cd /src; tar -cvf - foo) | (ssh other.machine 'cd /dst; tar -xf -') #~OR~ tar cf - whatever | ssh remotehost " ( cd /some/path ; tar xf - ) " ssh remotehost "( cd /somewhere ; tar cf - something ) " | tar xf -
General
- Backup directory /data and /home with tar command (z - compressed; note the
/dev/nst0
; 'nst0
' not 'st0
'):
% tar -czf /dev/st0 /data /home ~OR~ % tar --index-file=foo.log -jcvf /dev/nst0 /data /home ~OR~ % tar -jcvf /dev/nst0 /data /home 1>stdout 2>stderr # Using Bash shell ~OR~ % tar -jcvf /dev/nst0 --label="Backup - `date '+%Y-%m-%d'` - /home" /home 1>stdout 2>stderr
- Display list of files on tape drive:
% tar -tzf /dev/st0
Or,
% tar -tvf /dev/st0
- Restore /data directory:
% cd / % mt -f /dev/st0 rewind % tar -xzf /dev/st0 data
Backup via ssh
% tar zcvf - /data | ssh root@www.example.com "cat > /backup/data.tar.gz"
- Or, using the dd command:
% tar cvzf - /data | ssh root@www.example.com "dd of=/backup/data.tar.gz"
- Or, backup to a remote tape device:
% tar cvzf - /data | ssh root@www.example.com "cat > /dev/nst0"
- Also, using the mt command to rewind the tape and then dump to it:
% tar cvzf - /data | ssh root@www.example.com $(mt -f /dev/nst0 rewind; cat > /dev/nst0)$
- Finally, restore the data over a ssh session:
% ssh root@www.example.com "cat /backup/data.tar.gz" | tar zxvf -
Miscellaneous commands
- Exclude certain files from a tar archive:
% tar -zcvf /home/backup.tar.gz --exclude='foo' --exclude='bar' /home/bob
- Or, list files to exclude in a file (one filename per line):
% tar -zcvf /home/backup.tar.gz -X exclude.txt /home/bob
Backup script (example)
Note: Taken from http://wiki.novell.com/index.php/Nbackup
#!/bin/bash rm /var/log/nightly-backup.* echo "@Backup Begins ====================" > /var/log/nightly-backup.log date >> /var/log/nightly-backup.log date > /var/log/nightly-backup.errors mt -f /dev/nst0 rewind >> /var/log/nightly-backup.log 2>> /var/log/nightly-backup.errors echo "-- System backup" >> /var/log/nightly-backup.log tar cvf /dev/nst0 --label="System Backup - `date '+%d-%B-%Y'`" \ --totals -X /etc/backup.excludes / \ >> /var/log/nightly-backup.log 2>> /var/log/nightly-backup.errors echo "-- NSS Backup" >> /var/log/nightly-backup.log /opt/novell/sms/bin/nbackup -cvf /dev/nst0 \ --label="NSS Backup - `date '+%d-%B-%Y'`" \ -U local-linux-admin-user \ -P password /media/nss/MOUNTPOINT/ \ >> /var/log/nightly-backup.log \ 2>> /var/log/nightly-backup.nss echo "-- Rewinding and Ejecting Tape" >> /var/log/nightly-backup.log mt -f /dev/nst0 rewoff >> /var/log/nightly-backup.log 2>> /var/log/nightly-backup.errors date >> /var/log/nightly-backup.log echo "@Backup Ends ====================" >> /var/log/nightly-backup.log
See also
External links
tar(1)
:The GNU version of the tar archiving utility — Linux man page on usr-share-man.org.
Tutorials
- Linux tape backup with mt and tar command - howto
- Howto: Use tar command through network over ssh session
- Howto: Setting up RAID 1 mirroring on a running remote Linux system over ssh connection
- How do I rotate log files?
- Backup shell script to backup selected directories and upload securely (gpg) to FTP server
- Shell script to backup directories & files from your home directory and email them as .tar.gz file
- How do I use cpio command under Linux?
- Automated Backups With rdiff-backup
- Backup / Restore Using NBACKUP and TAR
- How to use TAR
- TAR file format
- How to Write a DAT Tape on Linux
- Using Standard Input and Output
Linux command line programs | |||
---|---|---|---|
File and file system management: | cat | cd | chmod | chown | chgrp | umask | cp | du | df | file | fsck | ln | ls | lsof | mkdir | more | mount | mv | pwd | rcp | rm | rmdir | split | touch | tree | ||
Process management: | anacron | at | chroot | cron/crontab | kill | nice | ps | sleep | screen | time | timex | top | nice/renice | wait | ||
User Management/Environment: | env | finger | id | locale | mesg | passwd | su | sudo | uname | uptime | w | wall | who | write | ||
Text processing: | awk | cut | diff | ex | head | tac | tee | iconv | join | less | more | paste | sed | sort | tail | tr | uniq | wc | xargs | perl | ||
Shell programming: | echo | expr | unset | Printing: | lp |
Communications: inetd | netstat | ping | rlogin | traceroute |
Searching: |
Miscellaneous: |