Difference between revisions of "Tar"
From Christoph's Personal Wiki
(→tar pipes) |
|||
Line 3: | Line 3: | ||
==Example usage== | ==Example usage== | ||
===tar pipes=== | ===tar pipes=== | ||
− | *Copy everything in /foo, to the directory /bar preserving permissions | + | *Copy everything in <code>/foo</code>, to the directory <code>/bar</code> preserving permissions and ownership: |
− | % (cd /foo; tar -cf - . ) | (cd /bar; tar -xpf - ) | + | % (cd /foo; tar -cf - . ) | (cd /bar; tar --same-owner -xpf - ) |
*You can also use a tar pipe to copy across the network: | *You can also use a tar pipe to copy across the network: |
Revision as of 07:49, 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
- 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 -')
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: |