INFO 321 Server Technologies II Backup Applications System Backup ◊ A key responsibility of IT professionals is to back up and restore the servers.
Download ReportTranscript INFO 321 Server Technologies II Backup Applications System Backup ◊ A key responsibility of IT professionals is to back up and restore the servers.
INFO 321 Server Technologies II Backup Applications 1 System Backup ◊ A key responsibility of IT professionals is to back up and restore the servers and/or network ◊ We’ve examined the hardware and processes used to do so; now we’ll focus on the application or software side 2 System Backup ◊ In Unix/Linux systems, the ‘tar’ command is a commonly used archiving mechanism • ‘dump’ and ‘restore’ are also used frequently ◊ ‘cron’ and variations on it are used to schedule backups • cron is named for Cronus, the Greek god of time 3 Some guidance on backups ◊ DO THEM! • Hardware fails, often when least convenient ◊ Backup from one machine to one device • This centralizes scripting management ◊ Label your media • No, you won’t remember which one is which ◊ Pick a reasonable backup time interval • It’s a tradeoff between effort and risk Mostly from (Nemeth, 2007) 4 Some guidance on backups ◊ Choose file system structure carefully • Make data that changes often easier to backup • If a few stray files need frequent backup, copy them to a directory that needed backup ◊ Daily backups should fit on one medium • Makes life easier ◊ Make file systems smaller than one medium 5 Some guidance on backups ◊ Keep media off-site • Disasters are more common than you think ◊ Protect your backups • Remember, they span file permissions • Consider encryption, and physical security ◊ Limit activities during backups • Or yes, you can mess up the archive ◊ Verify your media 6 Some guidance on backups ◊ Develop a media life cycle • And destroy media when dead ◊ Design data for backups • Consider what kinds of data you have, how quickly it changes, how often you’ll back it up, who owns the data ◊ Prepare for the worst • Disaster planning isn’t just for FEMA 7 Tar ◊ The ‘tar’ command is short for ‘tape archive’ • Its use is analogous to WinZip, in that it also can provide compression ◊ In addition to backups, tar is also used for distributing applications • A file ending in ‘.tar’ is sometimes called a tarball, but ‘archive’ is more polite Most of this section is from (Sarwar, 2002) 8 Tar Archives ◊ A collection of files and/or directories is considered an ‘archive’ ◊ Like most Unix/Linux commands, how tar works depends on the options selected • The c or r options are used to create a tarball • ‘c’ creates a new archive • ‘r’ appends files onto an existing archive 9 Tar options ◊ Two other commonly used options are • ‘v’ is verbose mode, to tell what it’s doing • ‘f’ file sets the name of the archive to file; without it, the default is the tape device /dev/rmt0 (if you have such a device!) ◊ So to create a new archive called mine.tar from the current directory down would be • tar cvf mine.tar . 10 Tar ◊ The ‘.tar’ suffix is optional – it just helps Windows figure out what the file is ◊ The options can have a dash before the first option; that’s more Unix-like ◊ So the same command could also be • tar -cvf mine.tar . 11 Tape devices ◊ If you’re actually using a tape device, it needs to be mounted before use • mount /dev/rmt0 ◊ After using the device, release it with • umount /dev/rmt0 12 Restoring archives ◊ To restore an archive, use the ‘x’ option • Copy (cp) the tar file to the directory in which you wish to unpack it • Change directory (cd) to that directory • tar xvf filename.tar ◊ This is also the option used to unpack software which is distributed in tar form 13 Selective restoration ◊ Sometimes you want to restore only specific files ◊ Use the ‘t’ option to get an ls –l format listing of archive contents • tar tvf filename.tar ◊ If the listing is long, pipe it into more • tar tvf filename.tar | more 14 Selective restoration ◊ Then you can use the tar xvf command, and add the path to the file you want • tar xvf filename.tar ./directory/onefile.doc ◊ Notice you need to specify the absolute or relative directory where the file will go 15 Adding compression ◊ Some versions of tar can also do compression, using the ‘z’ option • Use the ‘z’ option before the other options, for both creating and unpacking the archive • Compressed archives typically end in ‘.gz’ tar –zcvf mybackup.gz to create archive tar –zxvf mybackup.gz to unpack it 16 Appending onto an archive ◊ For reasons not grammatically clear, the option to append onto an existing archive is ‘r’ ◊ Need more tar? • The full GNU version of tar is described here 17 Time to dump ◊ Most forms of Linux can use dump and restore commands to create and restore backups ◊ dump creates a list of files modified since the last dump, and combines them into one large file • This is perfect for incremental backups! • File permissions and ownership are preserved Mostly from (Nemeth, 2007) 18 Why dump? ◊ Dump is handled more consistently across Unix and Linux distributions • Many flavors of Unix don’t support the full GNU tar features ◊ Dump requires a ‘backup level’ from 0 to 9 • Level 0 forces a full backup • Level n forces backup of files changed since the last dump of a level less than n 19 More dump options ◊ The ‘f’ option in dump identifies the target device for the dump • The parameter after the ‘f’ option and its device is the name of the filesystem to be dumped • dump -5u –f /dev/nst0 /work ◊ Note that dump can only archive one filesystem; in the example, it’s /work 20 More dump options ◊ The ‘u’ after the backup level (as in ‘-5u’ on the previous slide) forces dump to update a file /etc/dumpdates with the date, dump level, and filesystem name • This provides data for future dumps to know the last dump of that filesystem 21 Remote dump ◊ Dump only works on the local machine ◊ You can use rdump to dump a local filesystem onto a remote device, such as a tape drive • rdump -0u –f anchor:/dev/nst0 /spare 22 Dump scheduling ◊ The levels in dump are strictly relative, but you can assign them to different types of backups ◊ A simple schedule could use level 0 full backups every day, and keep every Nth tape permanently 23 Dump scheduling ◊ A more complex GFS-like schedule may be • • • • A A A A level level level level 9 5 3 0 dump dump dump dump daily weekly monthly at least quarterly ◊ The numbers 9, 5, 3 are arbitrary for flexibility; you could use 3, 2, 1 instead 24 Restore command ◊ The restore command does just that ◊ Determine the media from which you are restoring ◊ Use a temporary directory like /var/restore ◊ The most common restore options are –i, -f, -r, and -x 25 Restore command ◊ The restore –i option allows interactive marking of individual files to be restored • Navigate through the archive using ls, cd, and pwd commands • Mark files to be extracted with an add command • When done, use extract to restore those files 26 Restore command ◊ Like most backup commands, the –f option allows selection of the device to be restored ◊ So we might open an archive with • restore –i –f /dev/nst0 ◊ Then add a file with add iamlost ◊ And restore with extract 27 Remote restore ◊ Matching rdump, there is an rrestore command to restore off a remote tape device ◊ The –x option allows specification of a file location to be restored ◊ In a remote example we might have • rrestore –x –f tapehost:/dev/nst0 ./janet/iamlost 28 Restore a filesystem ◊ The ‘-r’ option restores an entire file system ◊ Make sure the target filesystem is properly created and mounted, and cd to the root of the filesystem ◊ Load the most recent level 0 tape and use • restore -r 29 Restore a filesystem ◊ Then restore, in order, the incremental restores since that level 0 ◊ In any backup level, you only need to restore the most recent one • So if you have four level 5 dumps, only restore the last one 30 Many filesystems on one tape ◊ It’s possible to dump many filesystems on one medium, space permitting • Just use the dump command several times, and don’t rewind the tape in between them ◊ The mt command should be used to skip forward to the correct dump on that tape, when it’s time to restore 31 Other backup applications ◊ There are lots of other open source and proprietary backup applications • Bacula • Tivoli Storage Manager • Veritas (now owned by Symantec) 32 Timed scripting ◊ Ok great, we have a couple ways to create archives via command line ◊ Now automate the process with timed scripts, often known as ‘cron jobs’ ◊ The cron system in Linux and Unix allows apps or scripts to be run at specified times ◊ It is managed via the crontab file From (Hill, 2007) and (Nemeth, 2007) 33 Crontab ◊ Each user has a crontab file, typically under /var/spool/cron, plus a sys admin one under /etc/crontab ◊ If you don’t have one yet, create one with • crontab –e ◊ Each line in the crontab file has five numbers, followed by the command it’s to run 34 Crontab ◊ The numbers are, in order: • • • • • Minutes (00 to 59) Hours (00 to 23, 00=midnight) Day of the month (1-31) Month of the year (1-12, 1=January) Weekday (0-6, 0=Sunday) ◊ So 01 04 3 1 2 runs at 04:01 am on January 3rd OR if it’s a Tuesday 35 Crontab ◊ Ok, so that’s a little restrictive ◊ You can enter a * to indicate any value • 01 04 * * * means 04:01 am on every day of every month ◊ And you can use ranges (1-15) or comma separated specific values (01,31) • 01,31 04 1-15 6 means run at 04:01 and 04:31 on the 1st through 15th days of June 36 Crontab ◊ So if you create a backupscript to run at 3:19 am every Saturday, the full crontab line would look like • 19 03 * * 6 /usr/bin/backupscript ◊ What happens if the first field is a *? 37 Crontab ◊ You can execute multiple commands by putting them in parentheses, separated by semicolons • 30 2 * * 1 (cd /users/joe/project; make) • This will run /users/joe/project/make at 2:30 am every Monday 38 Crontab uses ◊ So in addition to performing backups, crontab entries are handy for many purposes • Cleaning up file systems • Distributing configuration files across the network • Rotating full log files ◊ A newer app called anacron does intervalbased scheduling, but is run from cron 39 Sources ◊ Sarwar, Koretsky, Sarwar. Linux: The Textbook. (2002) Addison Wesley, ISBN 0201725959 ◊ Nemeth, Snyder, Hein. Linux Administration Handbook. (2007) Prentice Hall, ISBN 0131480049 ◊ Hill, et al. The Official Ubuntu Book. (2007) Prentice Hall, ISBN 0132354136 40