13,420
edits
Changes
no edit summary
</li></ul>'''<u>Working with Temporary Files</u>'''<br><br><ul><li>When creating temporary files, it is important NOT to store on a user's account (to avoid overwriting their existing files). Instead, temporary files can be created in the '''/tmp''' directory.<br><br></li><li>The $$ variable can be used as the filename extension which assigns the current PID of the shell script running to make the filename unique, and allow easy removal at the end of the shell script by deleting ALL files in the /tmp directory with the extension: .$$<br><br></li><li>Example:<br><br>''ls -lR > /tmp/temp-file.$$''<br>''grep secret /tmp/temp-file.$$''<br>''rm /tmp.$$''<br></li></ul> }}
|}
{| width="40%" align="right" cellpadding="10"|- valign="top"|<table cellspacing="0" cellpadding="5" style="border-top: thin solid black;margin-left:60px;"> <caption>'''Common Network Troubleshooting Tools'''</caption> <tr valign="top> <td style="border-bottom: thin solid black;font-weight:bold;background-color:#ffffff;">Purpose</td> <td style="border-bottom: thin solid black;font-weight:bold;background-color:#ffffff;padding-left:100px;">Command(s)</td> </tr> <tr valign="top"> <td style="border-bottom: thin solid black;">Network Connectivity</td> <td style="border-bottom: thin solid black;padding-left:100px;"><b><code><span style="color:#3366CC;font-size:1.2em;">ping</span></code></b><br><b><code><span style="color:#3366CC;font-size:1.2em;">arp</span></code></b><br><b><code><span style="color:#3366CC;font-size:1.2em;">ifconfig</span></code></b></td> </tr><tr valign="top"> <td style="border-bottom: thin solid black;">Network Service Status</td> <td style="border-bottom: thin solid black;padding-left:100px;"><b><code><span style="color:#3366CC;font-size:1.2em;">netstat'''</span></code></b></td> </tr> </table>|}===Part 2: Network Connectivity & Network Service Troubleshooting Utilities=== Troubleshooting network problems is an extremely important and frequent task for a Linux/Unix system administrator. Since network services (such as file-server, print-servers, web-servers, and email-servers) depend on network connectivity, as Linux/Unix sysadmin must be able to quickly and effectively pin-point sources of network problems in order to resolve them. Network service problems may not be entirely related to a "broken" network connection, but a service that is not running or not running correctly. The following table lists the most common listing of utilities to assist with detection of network connectivity or network service problems to help correct the problem. :'''Perform the following steps:''' #Switch to your '''c7host''' machine.#Issue the '''ping''' command to test connectivity to your '''centos1''', '''centos2''', and '''centos3''' VMs.#Examine the contents of the ARP cache by using the command: <b><code><span style="color:#3366CC;font-size:1.2em;">arp</span></code></b>arp What is the purpose of ARP?#Check the contents of the cache again by using the command: <b><code><span style="color:#3366CC;font-size:1.2em;">arp -n</span></code></b> What was the difference in output? #Issue the following command: <b><code><span style="color:#3366CC;font-size:1.2em;">netstat -at</span></code></b> This command will list all active TCP ports. Note the state of your ports. '''TCP''' is a connection oriented protocol that uses a handshaking mechanism to establish a connection. Those ports that show a state of LISTEN are waiting for connection requests to a particular service. For example you should see the ssh service in a LISTEN state as it is waiting for connections. <ol><li value="6">From one of your VM's login to your host using the '''ssh''' command.</li><li>On your c7host VM rerun the <b><code><span style="color:#3366CC;font-size:1.2em;">netstat -at</span></code></b> command and in addition to the '''LISTEN''' port it should list a 2nd entry with a state of ESTABLISHED. This shows that there is a current connection to your ssh server.</li><li>Exit your ssh connection from the VM and rerun the command on the CentOS host. Instead of '''ESTABLISHED''' it should now show a state of '''CLOSE_WAIT'''. Indicating that the TCP connection is being closed.</li><li>On your c7host VM, try the command: <b><code><span style="color:#3366CC;font-size:1.2em;">netstat -atn</span></code></b> How is this output different?Without the -n option netstat attempts to resolve IP addresses to host names (using /etc/hosts) and port numbers to service names (using /etc/services)</li><li>Examine the '''/etc/services''' file and find which ports are used for the services: ssh, sftp, http</li><li>Now execute the command netstat -au What is the difference between the options: -at and -au? When examining UDP ports why is there no state?</li></ol> ===Part 3: Using Arrays to Collect VM Network Information===
We finish shell scripting by using arrays by reading and storing networking information for each VM (centos1, centos2, and centos3) to be stored in a report in your c7host machine. We will use the ssh command in order to grab the network information (one VM at a time), and store the network setup into an Associative array in our c7host machine.