diff options
Diffstat (limited to 'chapter_16.xml')
-rw-r--r-- | chapter_16.xml | 722 |
1 files changed, 588 insertions, 134 deletions
diff --git a/chapter_16.xml b/chapter_16.xml index 4da780b..3a16ac9 100644 --- a/chapter_16.xml +++ b/chapter_16.xml @@ -3,190 +3,644 @@ "/usr/share/xml/docbook/xml-dtd-4.5/docbookx.dtd"> <chapter> -<title>Package Management</title> +<title>Basic Networking Utilities</title> <para> -Package management is an essential part of any Linux distribution. -Every piece of software included by Slackware, along with many -third-party tools are distributed as source code that can be compiled, -but compiling all those thousands of different applications and -libraries is tedious and time consuming. That's why many people prefer -to install pre-compiled software packages. In fact, when you installed -Slackware, the <application>setup</application> program primarily -worked by running package management tools on a list of packages. Here -we'll look at the various tools used for handling Slackware packages. +So you've finally managed to setup your network connection, now what? +How do you know that it's working? How do you know that you set it up +correctly? And just what do you do now that it's setup? Well this +chapter is for you. </para> <section> -<title><application>pkgtool</application></title> +<title>Network Diagnostic Tools</title> <para> -The simplest way to perform package maintenance tasks is to invoke -<application>pkgtool</application>(8), a menu-driven interface to some of -the other tools. <application>pkgtool</application> allows you to -install or remove packages as well as view the contents of those -packages and the list of currently installed packages in a -user-friendly ncurses interface. +Slackware Linux includes a great many networking tools for +troubleshooting and diagnosing network connection troubles, or just for +seeing what's out there on the network. Most of these tools are +command-line tools, so you can run them from a virtual terminal or in a +console window on your graphical desktop. A few of them even have +graphical front-ends, but we're going to deal almost exclusively with +command-line tools for now. </para> +<section> +<title>ping</title> + +<para> +<application>ping</application>(8) is a handy tool for determining if a +computer is operational on your network or on the Internet at large. +You can think of as a type of sonar for computers. By using it, you +send out a "ping" and listen for an echo to determine if another +computer or network device is listening. By default, +<application>ping</application> checks for the remote computer once per +second indefinitely, but you can change the interval between checks and +the total number of checks easily, just check the man page. You can +terminate the application at any time with +<keycap>CTRL</keycap>-<keycap>c</keycap>. When +<application>ping</application> is finished, it displays a handy +summary of its activity. <application>ping</application> is very useful +for determining if a computer on your network or the Internet is +available, but some systems block the packets +<application>ping</application> sends, so sometimes a system may be +functioning properly, but still not send replies. +</para> + + +<screen><prompt>darkstar:~# </prompt><userinput>ping -c 3 www.slackware.com</userinput> +64 bytes from slackware.com (64.57.102.34): icmp_seq=1 ttl=47 time=87.1 ms +64 bytes from slackware.com (64.57.102.34): icmp_seq=2 ttl=47 time=86.2 ms +64 bytes from slackware.com (64.57.102.34): icmp_seq=3 ttl=47 time=86.7 ms + +--- slackware.com ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 2004ms +rtt min/avg/max/mdev = 86.282/86.718/87.127/0.345 ms +</screen> + +</section> + +<section> +<title>traceroute</title> + +<para> +<application>traceroute</application>(8) is a handy tool for determining +what route your packets take to reach some other computer. It's mainly +of use for determining which computers are "near" or "far" from you. +This distance isn't strictly geographical, as your Internet Service +Provider may route traffic from your computer in strange ways. +<application>traceroute</application> shows you each router between +your computer and any other machine you wish to connect to. +Unfortunately, many providers, firewalls, and routers will block +<application>traceroute</application> so you might not get a complete +picture when using it. Still, it remains a handy tool for network +troubleshooting. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>traceroute www.slackware.com</userinput> +traceroute to slackware.com (64.57.102.34), 30 hops max, 46 byte +packets + 1 gw.ctsmacon.com (192.168.1.254) 1.468 ms 2.045 ms 1.387 ms + 2 10.0.0.1 (10.0.0.1) 7.642 ms 8.019 ms 6.006 ms + 3 68.1.8.49 (68.1.8.49) 10.446 ms 9.739 ms 7.003 ms + 4 68.1.8.69 (68.1.8.69) 11.564 ms 6.235 ms 7.971 ms + 5 dalsbbrj01-ae0.r2.dl.cox.net (68.1.0.142) 43.859 ms 43.287 ms +44.125 ms + 6 dpr1-ge-2-0-0.dallasequinix.savvis.net (204.70.204.146) 41.927 ms +58.247 ms 44.989 ms + 7 cr2-tengige0-7-5-0.dallas.savvis.net (204.70.196.29) 42.577 ms +46.110 ms 43.977 ms + 8 cr1-pos-0-3-3-0.losangeles.savvis.net (204.70.194.53) 78.070 ms +76.735 ms 76.145 ms + 9 bpr1-ge-3-0-0.LosAngeles.savvis.net (204.70.192.222) 77.533 ms +108.328 ms 120.096 ms +10 wiltel-communications-group-inc.LosAngeles.savvis.net +(208.173.55.186) 79.607 ms 76.847 ms 75.998 ms +11 tg9-4.cr01.lsancarc.integra.net (209.63.113.57) 84.789 ms 85.436 +ms 85.575 ms +12 tg13-1.cr01.sntdcabl.integra.net (209.63.113.106) 87.608 ms +84.278 ms 86.922 ms +13 tg13-4.cr02.sntdcabl.integra.net (209.63.113.134) 87.284 ms +85.924 ms 86.102 ms +14 tg13-1.cr02.rcrdcauu.integra.net (209.63.114.169) 85.578 ms +85.285 ms 84.148 ms +15 209.63.99.166 (209.63.99.166) 84.515 ms 85.424 ms 85.956 ms +16 208.186.199.158 (208.186.199.158) 86.557 ms 85.822 ms 86.072 ms +17 sac-main.cwo.com (209.210.78.20) 88.105 ms 87.467 ms 87.526 ms +18 slackware.com (64.57.102.34) 85.682 ms 86.322 ms 85.594 ms +</screen> +</section> + +<section> +<title>telnet</title> + +<para> +Once upon a time, <application>telnet</application>(1) was the greatest +thing since sliced bread. Basically, <application>telnet</application> +opens an unencrypted network connection between two computers and hands +control of the session to the user rather than some other application. +Using <application>telnet</application>, people could connect to shells +on other computers and execute commands as if they were physically +present. Due to its unencrypted nature this is no longer recommended; +however, <application>telnet</application> is still used for this +purpose by many devices. +</para> + +<para> +Today, <application>telnet</application> is put to better use as a +network diagnostic tool. Because it passes control of the session +directly to the user, it can be used for a great variety of testing +purposes. As long as you know what ASCII commands to send to the +receiving computer, you can do any number of activies, such as read web +pages or check your e-mail. Simply inform +<application>telnet</application> what network port to use, and you're +all set. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>telnet www.slackware.com 80</userinput> +Trying 64.57.102.34... +Connected to www.slackware.com. +Escape character is '^]'. +<userinput>HEAD / HTTP/1.1 +Host: www.slackware.com +</userinput> +HTTP/1.1 200 OK +Date: Thu, 04 Feb 2010 18:01:35 GMT +Server: Apache/1.3.27 (Unix) PHP/4.3.1 +Last-Modified: Fri, 28 Aug 2009 01:30:27 GMT +ETag: "61dc2-5374-4a973333" +Accept-Ranges: bytes +Content-Length: 21364 +Content-Type: text/html +</screen> + +</section> + +<section> +<title>ssh</title> + <para> -PICTURE OF PKGTOOL MAIN SCREEN. -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! -FILL THIS IN!!!!!! +As we mentioned, <application>telnet</application> may be useful as a +diagnostic tool, but its unencrypted nature makes it a security concern +for shell access. Thankfully, there's the secure shell protocol. Nearly +every Linux, UNIX, and BSD distribution today makes use of OpenSSH, or +<application>ssh</application>(1) for short. It is one of the most +commonly used network tools today and makes use of the strongest +cryptographic techniques. <application>ssh</application> has many +features, configuration options, and neat hacks, enough to fill its own +book, so we'll only go into the basics here. Simply run +<application>ssh</application> with the user name and the host and +you'll be connected to it quickly and safely. If this is the first time +you are connecting to this computer, <application>ssh</application> +will ask you to confirm your desire, and make a local copy of the +encryption key to use. Should this key later change, +<application>ssh</application> will warn you and refuse to connect +because it is possible that some one is attempting to hijack the +connection using what is known as a man-in-the-middle attack. </para> +<screen><prompt>darkstar:~# </prompt><userinput>ssh alan@slackware.com</userinput> +alan@slackware.com's password: <userinput>secret</userinput> +<prompt>alan@slackware.com:~$ </prompt> +</screen> + <para> -<application>pkgtool</application> is a convenient and easy way to -perform the most basic tasks, but for more advanced work more flexible -tools are needed. +The user and hostname are in the same form used by e-mail addresses. +If you leave off the username part, <application>ssh</application> will +use your current username when establishing the connection. </para> </section> <section> -<title>Installing, Removing, and Upgrading Packages</title> - -<para> -While <application>pkgtool</application> scores points for convenience, -<application>installpkg</application>(8) is much more capable of -handling odd tasks, such as quickly installing a single package, -installing an entire disk set of packages, or scripting an install. -<application>installpkg</application> takes a list of packages to -install, and simply installs them without asking any questions. Like -all Slackware package management tools, it assumes that you know what -you're doing and doesn't pretend to be smarter than you. In its -simplest form, <application>installpkg</application> simply takes a -list of packages to install, and does exactly what you would expect. -</para> - -<screen><prompt>darkstar:~# </prompt><userinput>installpkg blackbox-0.70.1-i486-2.txz</userinput> -Verifying package blackbox-0.70.1-i486-2.txz. -Installing package blackbox-0.70.1-i486-2.txz: -PACKAGE DESCRIPTION: -# blackbox (Blackbox window manager) -# -# Blackbox is that fast, light window manager you have been looking for -# without all those annoying library dependencies. -# -# Also included in this package is the bbkeys utility for controlling -# keyboard shortcut commands from within Blackbox. -# -# The Blackbox home page is http://blackboxwm.sourceforge.net -# -Package blackbox-0.70.1-i486-2.txz installed.</screen> - -<para> -You can of course install multiple packages at a time, and in fact use -shell wild cards. The following installs all of the "N" series -packages from a mounted CD-ROM. -</para> - -<screen><prompt>darkstar:~# </prompt><userinput>installpkg /mnt/cdrom/slackware/n/*.txz</userinput></screen> - -<para> -Removing a package is every bit as easy as installing one. As you might -expect, the command to do this is -<application>removepkg</application>(8). Simply tell it which packages -to remove, and <application>removepkg</application> will check the -contents of the package database and remove all the files and -directories for that package with one caveat. If that file is included -in multiple installed packages, it will be skipped and if a directory -has new files in it, the directory will be left in place. Because of -this, removing packages takes a good while longer than installing them. -</para> - -<screen><prompt>darkstar:~# </prompt><userinput>removepkg blackbox-0.70.1-i486-2.txz</userinput> +<title>tcpdump</title> + +<para> +So far all the tools we've looked at have focused on making connections +to other computers, but now we're going to look at the traffic itself. +<application>tcpdump</application>(1) (which must be run as root) +allows us to view all or part of the network traffic originating or +received by our computer. <application>tcpdump</application> displays +the raw data packets in a variety of ways with all the network headers +intact. Don't be alarmed if you don't understand everything it +displays, <application>tcpdump</application> is a tool for professional +network engineers and system administrators. By default, it probes the +first network card it finds, but if you have multiple interfaces, +simply use the <arg>-i</arg> argument to specify which one you're +interested in. You can also limit the data displayed using expressions +and change the manner in which it is displayed, but that is best +explained by the man page and other reference material. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>tcpdump -i wlan0</userinput> +tcpdump: verbose output suppressed, use -v or -vv for full protocol +decode +listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes +13:22:28.221985 IP gw.ctsmacon.com.microsoft-ds > 192.168.1.198.59387: +Flags [P.], ack 838190560, win 3079, options [nop,nop,TS val 1382697489 +ecr 339048583], length 164WARNING: Short packet. Try increasing the +snap length by 140 +SMB PACKET: SMBtrans2 (REPLY) + +13:22:28.222392 IP 192.168.1.198.59387 > gw.ctsmacon.com.microsoft-ds: +Flags [P.], ack 164, win 775, options [nop,nop,TS val 339048667 ecr +1382697489], length 134WARNING: Short packet. Try increasing the snap +length by 110 +SMB PACKET: SMBtrans2 (REQUEST) +</screen> + +</section> + +<section> +<title>nmap</title> + +<para> +Suppose you need to know what network services are running on a +machine, or multiple machines, or you wish to determine if multiple +machines are responsive? You could <application>ping</application> +each one individually, <application>telnet</application> to each port +you're interested in, and note every detail, but that's very tedious +and time consuming. A much easier alternative is to use a port scanner, +and <application>nmap</application>(1) is just the tool for the job. +<application>nmap</application> is capable of scanning TCP and UDP +ports, determining the operating system of a network device, probing +each located service to determine its specific type, and much much +more. Perhaps the simplist way to use <application>nmap</application> +is to "ping" multiple computers at once. You can use network address +notation (CIDR) or specify a range of addresses and +<application>nmap</application> will scan every one and return the +results to you when it's finished. You can even specify host names as +you like. +</para> + +<para> +In order to "ping" hosts, you'll have to use the <arg>-sP</arg> +argument. The following command instructs +<application>nmap</application> to "ping" www.slackware.com and the 16 +IP addresses starting at 72.168.24.0 and ending at 72.168.24.15. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>nmap -sP www.slackware.com 72.168.24.0/28</userinput> +</screen> + +<para> +Should you need to perform a port scan, <application>nmap</application> +has many options for doing just that. When run without any arguments, +<application>nmap</application> performs a standard TCP port scan on all +hosts specified. There are also options to make +<application>nmap</application> more or less aggressive with its +scanning to return results quicker or fool intrusion detection +services. For a full discussion, you should refer to the rather +exhaustive man page. The following three commands perform a regular +port scan, a SYN scan, and a "Christmas tree" scan. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>nmap www.example.com</userinput> +<prompt>darkstar:~# </prompt><userinput>nmap -sS www.example.com</userinput> +<prompt>darkstar:~# </prompt><userinput>nmap -sX www.example.com</userinput> +</screen> + +<para> +Be warned! Some Internet Service Providers frown heavily on port +scanning and may take measures to prevent you from doing it. +<application>nmap</application> and applications like it are best used +on your own systems for maintenance and security purposes, not as +general purpose Internet scanners. +</para> + +</section> + +</section> + +<section><title>Web Browsers</title> + +<para> +Slackware includes a variety of web browsers. If you're using a +graphical desktop, you'll find Firefox, Seamonkey, and others you may +already be familiar with, but what about console access? Fortunately, +there are a number of capable web browsers here as well. +</para> + +<section><title>lynx</title> + +<para> +The oldest console-based web browser included with Slackware is +definitely <application>lynx</application>(1), a very capable if +somewhat limited web browser. <application>lynx</application> does not +support frames, javascript, or pictures; it is strictly a text web +browser. Navigation is performed using your keyboard's arrow keys and +optionally, a mouse. While it lacks many features that other browsers +support, <application>lynx</application> is one of the fastest web +browsers you'll ever use for gathering information. For example, the +<arg>-dump</arg> argument sends the formatted web page directly to the +console, which can then be piped to other programs. +</para> + +<para> +PIC OF LYNX IN ACTION. +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +</para> + +</section> + +<section><title>links</title> + +<para> +A more feature-rich alternative is the popular +<application>links</application>(1), a console-based web browser that +supports frames and has better table rendering than +<application>lynx</application>. Like its predecessor, +<application>links</application> is navigated with the arrow keys, and +the use of a mouse is supported. Unlike, +<application>lynx</application> it also includes a handy menu (simply +click on the top line with your mouse to activate) and generally +formats web pages better. +</para> + +<para> +PIC OF LINKS IN ACTION. +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +FILL THIS IN!!!!!!! +</para> + +</section> + +<section><title>wget</title> + +<para> +Unlike the other browsers we've looked at, +<application>wget</application>(1) is non-interactive. Rather than display +HTTP content, <application>wget</application> downloads it. This takes +the "browsing" out of the web browser. Unlike the dump modes of other +browsers, <application>wget</application> does not format its +downloads; rather it copies the content in its exact form on the web +server with all tags and binary data in place. It also supports several +recursive options that can effectively mirror online content to your +local computer. <application>wget</application> need not operate +exclusively on HTTP content; it also supports FTP and several other +protocols. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>wget ftp://ftp.osuosl.org/pub/slackware/slackware-current/ChangeLog.txt</userinput> +--2010-05-01 13:51:19-- +ftp://ftp.osuosl.org/pub/slackware/slackware-current/ChangeLog.txt + => `ChangeLog.txt' +Resolving ftp.osuosl.org... 64.50.236.52 +Connecting to ftp.osuosl.org|64.50.236.52|:21... connected. +Logging in as anonymous ... Logged in! +==> SYST ... done. ==> PWD ... done. +==> TYPE I ... done. ==> CWD /pub/slackware/slackware-current ... done. +==> SIZE ChangeLog.txt ... 75306 +==> PASV ... done. ==> RETR ChangeLog.txt ... done. +Length: 75306 (74K) + +100%[======================================>] 75,306 110K/s in 0.7s + +2010-05-01 13:51:22 (110 KB/s) - `ChangeLog.txt' saved [75306] </screen> +</section> + +</section> + +<section> +<title>FTP Clients</title> + <para> -Finally, upgrading is just as easy with (you guessed it), -<application>upgradepkg</application>(8) which first installs a new -package, then removes whatever files and directories are left-over from -the old package. One important thing to remember is that -<application>upgradepkg</application> doesn't check to see if the -previously installed package has a higher version number than the "new" -package, so it can also be used to downgrade to older versions. +Lots of data is stored on FTP servers the world over. In fact, +Slackware Linux was first publically offered via FTP and continues to +be distributed in this fashion today. Most open source software can be +downloaded in source code or binary form via FTP, so knowing how to +retrieve this information is a handy skill. </para> +<section><title>ftp</title> +<para> +The simplest FTP client included with Slackware is named simply, +<application>ftp</application>(1) and is a reliable if somewhat simple +means of sending and retrieving data. <application>ftp</application> +connects to an FTP server, asks for your username and password, and +then allows you to put or get data to and from that server. +<application>ftp</application> has fallen out of favor with more +experienced users do to a lack of features, but remains a handy tool, +and much of the documentation you see online will refer you to it. +</para> -<screen><prompt>darkstar:~# </prompt><userinput>upgradepkg blackbox-0.70.1-i486-2.txz</userinput> +<para> +Once an FTP session has been initialized, you'll be placed at a prompt +somewhat like a shell. From here you can change and list directories +using the "cd" and "ls" commands, just like a shell. Additionally, you +may issue the "put" command to send a file to the server, or a "get" +command to retrieve data from the server. If you're connecting to a +public FTP server, you'll want to use the "anonymous" username and +simply enter your e-mail address (or a fake one) for the password. +</para> -+============================================================================== -| Upgrading blackbox-0.65.0-x86_64-4 package using -./blackbox-0.70.1-i486-2.txz -+============================================================================== +<screen><prompt>darkstar:~# </prompt><userinput>ftp ftp.osuosl.org</userinput> +Name (ftp.osuosl.org:alan): <userinput>anonymous</userinput> +331 Please specify the password. +Password: <userinput>secret</userinput> +230 Login successful. +Remote system type is UNIX. +Using binary mode to transfer files. +ftp> <userinput>cd pub/slackware/slackware-current/</userinput> +250 Directory successfully changed. +ftp> <userinput>get ChangeLog.txt</userinput> +local: ChangeLog.txt remote: ChangeLog.txt +200 PORT command successful. Consider using PASV. +150 Opening BINARY mode data connection for ChangeLog.txt (33967 +bytes). +226 File send OK. +33967 bytes received in 0.351 secs (94 Kbytes/sec) +ftp> <userinput>bye</userinput> +221 Goodbye. +</screen> -Pre-installing package blackbox-0.70.1-i486-2... +</section> -Removing package -/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51... - --> Deleting symlink /usr/share/blackbox/nls/POSIX - --> Deleting symlink /usr/share/blackbox/nls/US_ASCII - --> Deleting symlink /usr/share/blackbox/nls/de - --> Deleting symlink /usr/share/blackbox/nls/en - --> Deleting symlink /usr/share/blackbox/nls/en_GB -... -Package blackbox-0.65.0-x86_64-4 upgraded with new package -./blackbox-0.70.1-i486-2.txz.</screen> +<section><title>ncftp</title> <para> -All of these tools have useful arguments. For example, the -<arg>--root</arg> to <application>installpkg</application> will install -packages into an arbitrary directory. The <arg>--dry-run</arg> argument -will instruct <application>upgradepkg</application> to simply tell you -what it would attempt without actually making any changes to the -system. For complete details, you should (as always) refer to the man -pages. +<application>ncftp</application>(1) (pronounced nick-f-t-p), is a more +feature rich successor to <application>ftp</application>, supporting +tab completion and recursive retrieval. It automatically connects to a +server as the anonymous user, unless you specify a different username +on the commandline with the <arg>-u</arg> argument. The primary +advantage over <application>ftp</application> is the ability to send +and retrieve multiple files at once with the "mput" and "mget" +commands. If you pass the <arg>-R</arg> argument to either of them, +they will recursively put or get data from directories. </para> +<screen><prompt>darkstar:~# </prompt><userinput>ncftp ftp.osuosl.org</userinput> +Logging in... +Login successful. +Logged in to ftp.osuosl.org. +ncftp / > <userinput>cd pub/slackware/slackware-current</userinput> +Directory successfully changed. +ncftp ...ware/slackware-current > <userinput>mget -R isolinux</userinput> +isolinux/README.TXT: 4.63 kB 16.77 kB/s +isolinux/README_SPLIT.TXT: 788.00 B 5.43 kB/s +isolinux/f2.txt: 793.00 B 5.68 kB/s +isolinux/initrd.img: 13.75 MB 837.91 kB/s +isolinux/iso.sort: 50.00 B 354.50 B/s +isolinux/isolinux.bin: 14.00 kB 33.99 kB/s +isolinux/isolinux.cfg: 487.00 B 3.30 kB/s +isolinux/message.txt: 760.00 B 5.32 kB/s +isolinux/setpkg: 2.76 kB 19.11 kB/s +ncftp ...ware/slackware-current > <userinput>bye</userinput> +</screen> + +</section> + +<section><title>lftp</title> + +<para> +The last client we're going to look at is +<application>lftp</application>(1). Like +<application>ncftp</application>, it supports tab completion and +recursive activity, but has a more friendly license. Rather than user +"mget" and "mput", all recursive operations are handled with the +"mirror" command. "mirror" has many different options available, so +I'll have to refer you to the man page and the built-in "help" command +for complete details. +</para> + +<screen><prompt>darkstar:~# </prompt><userinput>lftp ftp.osuosl.org</userinput> +lftp ftp.osuosl.org:~> <userinput>cd /pub/slackware/slackware-current</userinput> +cd ok, cwd=/pub/slackware/slackware-current +lftp ftp.osuosl.org:/pub/slackware/slackware-current> <userinput>mirror isolinux</userinput> +Total: 2 directories, 16 files, 1 symlink +New: 16 files, 1 symlink +14636789 bytes transferred in 20 seconds (703.7K/s) +lftp ftp.osuosl.org:/pub/slackware/slackware-current> <userinput>bye</userinput> +</screen> + +</section> + </section> <section> -<title>Package Compression Formats</title> +<title>NNTP Clients</title> <para> -We won't go in depth into the details of package formats, but a few -words should be given here. In the past, all Slackware packages were -compressed with the <application>gzip</application>(1) compression -utility, which was a good compromise between compression speed and -size. Recently, new compression schemes have been added and the -package management tools have been upgraded to handle these. Today, -official Slackware packages are compressed with the -<application>xz</application> utility and end with .txz extensions. -Older packages (and many third party packages) still use the .tgz -extension. +Once upon a time when the Internet was young, before the World Wide Web +was invented and no one had heard of hyperlinks, everyone retrieved +their news and information through a service known as Usenet using the +NNTP protocol. It remains today a useful knowledge base of information +on an incredible variety of subjects, but if you wish to access this +information, you're going to need a proper client. Slackware includes +a number of NNTP clients with both console and graphical interfaces, +but we'll only detail the console tools here. Popular graphical news +readers include <application>knode</application> and +<application>pan</application>. </para> +<section><title>tin</title> + +</section> + +<section><title>slrn</title> + +</section> + </section> <section> -<title><application>slackpkg</application></title> +<title>rsync</title> <para> - The <application>slackpkg</application> is an automated tool for -management of Slackware Linux Packages. It was in /extra for -the release of slackware-12.1, and since the release of -slackware-12.2 it is included in the ap/ series of a base -installation. +Ready to see something cool? Have you ever found yourself needing just +a handful of files from a large directory, but you're not entirely sure +which files you already have and which ones you need? You can download +the entire directory again, but that's duplicating a lot of work. You +can pick and chose, manually check everything, but that's very tedious. +Perhaps you've downloaded a large file such as an ISO, but something +went wrong with the download? It doesn't make sense that you should +have to pull down the entire file again if only a few bits have been +corrupted. Enter <application>rsync</application>(1), a fast and +versatile copying tool for local and remote files. </para> + +<para> +<application>rsync</application> uses a handful of simple, but very +effective techniques to determine what needs to be changed. By checking +file size and time stamps, it can determine if two files are different. +If something has changed, it can determine what bytes are different, +and simply download that handfull of data rather than an entire file. +It is truly a marvel of modern technology. +</para> + <para> - For more information see the <application>man</application> pages for -slackpkg(8) and slackpkg.conf(5). +In its simplist form, <application>rsync</application> connects to an +rsync protocol server and downloads a list of files and directories, +along with their sizes, timestamps, and other information. It then +compares this to the local files (if any) to determine what it needs to +transfer. Only files that are different will be synced. Additionally, +it breaks up large files into smaller chunks and compares those chunks +using a quick and simple hash function. Any chunks that match are not +transferred, so the amount of data that must be copied can be +dramatically reduced. <application>rsync</application> also supports +compression, verbose output, file deletion, permission handling, and +many other options. For a complete list, you'll need to refer to the +man page, but I've included a small table of some of the more common +options. </para> + +<table pgwide="0"> +<title>rsync Arguments</title> +<tgroup cols="2"> + <thead> + <entry>Argument</entry> + <entry>Explaination</entry> + </thead> + <tbody> + <row> + <entry>-v</entry> + <entry>Increased verbosity</entry> + </row> + <row> + <entry>-c</entry> + <entry>Checksum all files rather than relying on file size and timestamp</entry> + </row> + <row> + <entry>-a</entry> + <entry>Archive mode (equivilant to -rlptgoD)</entry> + </row> + <row> + <entry>-e</entry> + <entry>Specify a remote shell to use</entry> + </row> + <row> + <entry>-r</entry> + <entry>Recursive mode</entry> + </row> + <row> + <entry>-u</entry> + <entry>Update - skip files that are newer on the receiving end</entry> + </row> + <row> + <entry>-p</entry> + <entry>Preserve permissions</entry> + </row> + <row> + <entry>-n</entry> + <entry>Dry-run - perform a trial run without making any changes</entry> + </row> + <row> + <entry>-z</entry> + <entry>Compress - handy for slow network connections</entry> + </row> + </tbody> +</tgroup> +</table> + <para> -Homepage: <ulink url="http://www.slackpkg.org/">http://www.slackpkg.org/</ulink> +Due to the power and versatility of <application>rsync</application>, +it can be invoked in a number of ways. The following two examples +connect to an rsync protocol server to retrieve some information and to +another server via ssh to encrypt the transmission. </para> +<screen><prompt>darkstar:~# </prompt><userinput>rsync -avz rsync://ftp.osuosl.org/pub/slackware/slackware-current/ \ +/src/slackware-current/</userinput> +<prompt>darkstar:~# </prompt><userinput>rsync -e ssh ftp.slackware.com:/home/alan/foo /tmp/foo</userinput> +</screen> + </section> </chapter> |