User Tools

Site Tools


opus:fall2011:asowers:part3

Part 3

Entries

November 15 2011

Today as a class we've started going over basic UNIX networking tools.

* These tools are invaluable to system administrators because they allow snapshots of the systems network interfaces.
* UNIX is designed to be a network oriented operating system.
* Networking tools can be incorporated into scripts so system administrators may automate their daily cleanup procedures.
* Network interfaces break a holy rule of unix; network interfaces are NOT a file! 

NoVember 23, 2011

Today I set up an administrative user account on PogoPlug server. It has come to my understanding that constantly using the root account is not ideal for day to day interaction with your system for a variety of reasons:

  • It is not secure; what if your session as root is somehow intercepted? Your system would them be compromised.
  • When a user uses 'su' or 'sudo' instead of the root account the commands are logged to syslog (3)
  • a user cannot simply use sudo, they must be included in the sudoers file.
  • the sudoers file is located here(on my system): /etc/sudoers

November 29, 2011

Today I setup 'htop' on my BlueHost domain server.

  • I connect to this server via SSH
  • htop is proving useful for monitoring the load limits my server can handle whilst I'm developing CivicBeat
  • This plays more into the administration and maintenance portion of UNIX
  • I can see that the themes in this course have dramatic real world application.

November 30, 2011

Last night I Noobishly executed a crippling loop script that broke my pipe and has incapacitated me…

  • It would be wise to never execute scripts that you don't understand.
  • I think it was a good lesson concerning what I had stated above.
  • I sure am missing that “are you sure you want to do this?” prompt!
  • What challenges are you facing with respect to the course? - I'm still locked out of lab46… so at this juncture; everything.

unix Topics

Kill

The kill command does just that… Kill PIDs of course. Simply run the ps command to see your listed processes, then type: “kill [the PID yo would like to kill]”

[root@alarm ~]# peace
-bash: peace: command not found
[root@alarm ~]# love
-bash: love: command not found
[root@alarm ~]# kill
You must specify whom to kill
[root@alarm ~]# 


;)

dstat

dstat is a tool for monitoring system resource statistics

andrew@Dimension-4600:~$ dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|1734B 2747B|   0     0 | 136B  210B|  24    28 
  0   1  99   0   0   0|   0     0 | 594B 1766B|   0     0 |  53    61 
  0   0 100   0   0   0|   0     0 | 264B 1228B|   0     0 |  30    18 
  1   1  98   0   0   0|   0     0 | 741B 2739B|   0     0 |  55    71 
  9   0  91   0   0   0|   0     0 | 708B 1928B|   0     0 |  62    40 
  0   0  93   7   0   0|   0    16k| 701B 1478B|   0     0 |  64    81 
  1   1  98   0   0   0|   0     0 | 264B 1140B|   0     0 |  44    34 
  0   0 100   0   0   0|   0     0 | 198B  944B|   0     0 |  34    39 
  0   0 100   0   0   0|   0     0 | 264B 1140B|   0     0 |  35    30 
  0   0 100   0   0   0|   0     0 | 264B  944B|   0     0 |  35    40 
  1   1  98   0   0   0|   0     0 | 414B 1144B|   0     0 |  39    56 
  1   0  99   0   0   0|   0  4096B| 198B  944B|   0     0 |  41    47 
  0   0 100   0   0   0|   0     0 | 198B 1078B|   0     0 |  33    39 
  2   1  97   0   0   0|   0     0 | 893B 2309B|   0     0 |  68    72 
  8   1  91   0   0   0|   0     0 | 840B 2016B|   0     0 |  59    42 ^C
andrew@Dimension-4600:~$ 

slurm

Slurm is another utility that displays network interface activity with an ascii text graph.

                       -= slurm 0.3.3 on Dimension-4600 =-                       
                                                 x                               
                                                 x                            x  
                                                 x                            x  
                                                 x                            x  
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
                                                 x                               
      Current RX Speed: 0.00 KB/s              Current TX Speed: 0.00 KB/s       
    Graph Top RX Speed:                      Graph Top TX Speed:                 

mtr

mtr is the wonderful love-child of traceroute and ping. <3

[andrew@alarm ~]$ mtr civicbeat.com

                            My traceroute  [v0.81]
alarm (0.0.0.0)                                       Sun Nov 27 17:44:42 2011
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                      Packets               Pings
 Host                               Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.1.1                      0.0%     7    0.5   1.1   0.5   4.6   1.6
 2. ???
 3. gi5-2-19-cmts.emirny27-rtr002.c  0.0%     7    9.5  10.3   9.2  13.5   1.5
 4. ae15.ithcnycy-rtr001.cny.northe  0.0%     7   10.7  11.1  10.0  15.2   1.8
 5. rdc-74-74-108-116.cny.northeast  0.0%     7   13.7  13.9  12.9  18.2   1.9
 6. ae-3-0.cr0.chi10.tbone.rr.com    0.0%     7   26.7  27.9  26.3  30.4   1.6
 7. ae-0-0.pr0.chi10.tbone.rr.com    0.0%     7   26.4  30.6  26.0  55.7  11.1
 8. te0-2-0-7.ccr22.ord03.atlas.cog  0.0%     7   26.8  26.9  26.1  28.0   0.6
 9. te0-0-0-1.ccr21.ord01.atlas.cog  0.0%     7   33.6  30.1  27.2  35.7   3.3
10. te0-4-0-3.ccr21.jfk02.atlas.cog  0.0%     7   42.1  42.1  41.1  42.9   0.5
11. te0-2-0-1.ccr22.jfk05.atlas.cog  0.0%     7   42.9  42.9  42.4  43.9   0.6
12. te4-2.mag01.jfk05.atlas.cogentc  0.0%     7   42.0  42.5  41.7  45.3   1.3
13. 38.104.74.118                    0.0%     6   42.5  43.2  42.3  45.7   1.3
14. tg1-1.ar02.prov.acedc.net        0.0%     6  102.2 103.6 101.1 107.2   2.5
15. port99.ar02.prov.bluehost.com    0.0%     6  103.6 104.0 101.1 109.8   3.2
16. box259.bluehost.com             80.0%     6  105.7 105.7 105.7 105.7   0.0

powertop

This utility displays system power consumption for each individual component.

andrew@Dimension-4600:~$ sudo powertop

PowerTOP 1.97     Overview   Idle stats   Frequency stats   Device stats   Tunables                                     

Summary: 0.0 wakeups/second,  0.0 GPU ops/second and 0.0 VFS ops/sec

                Usage       Events/s    Category       Description
              7.7 ms/s       0.0        Process        powertop
              7.4 ms/s       0.0        Process        sshd: unknown [priv]
            397.4 µs/s       0.0        Process        sshd: unknown [net]
            262.7 µs/s       0.0        Process        /usr/lib/gnome-settings-daemon/gnome-settings-daemon
            201.3 µs/s       0.0        Process        rsyslogd -c5
            157.0 µs/s       0.0        Process        /usr/lib/gvfs/gvfs-gdu-volume-monitor
            142.2 µs/s       0.0        Process        avahi-daemon: running [Dimension-4600.local]
            139.5 µs/s       0.0        Process        nautilus -n
            129.9 µs/s       0.0        Process        /usr/lib/gvfs/gvfsd-trash --spawner :1.1 /org/gtk/gvfs/exec_spaw/0
            127.5 µs/s       0.0        Process        sshd: andrew@pts/1
            106.8 µs/s       0.0        Process        [migration/0]
            101.0 µs/s       0.0        Process        /usr/lib/i386-linux-gnu/colord/colord
             79.4 µs/s       0.0        Process        /usr/bin/python /usr/bin/update-manager --no-focus-on-map
             77.3 µs/s       0.0        Interrupt      [9] RCU(softirq)
             71.9 µs/s       0.0        Timer          hrtimer_wakeup
             57.6 µs/s       0.0        Process        update-notifier
             49.6 µs/s       0.0        Process        /usr/lib/indicator-datetime/indicator-datetime-service
             41.5 µs/s       0.0        Process        /usr/lib/accountsservice/accounts-daemon
             40.1 µs/s       0.0        Timer          tick_sched_timer
             35.3 µs/s       0.0        Interrupt      [3] net_rx(softirq)
             31.6 µs/s       0.0        Process        /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu
             25.4 µs/s       0.0        Process        [flush-ecryptfs-]
             21.6 µs/s       0.0        Interrupt      [1] timer(softirq)
             20.8 µs/s       0.0        Process        [ksoftirqd/0]
             14.7 µs/s       0.0        Interrupt      [21] eth1
             14.5 µs/s       0.0        Process        [kworker/0:0]
             10.5 µs/s       0.0        kWork          flush_to_ldisc
              8.0 µs/s       0.0        Timer          clocksource_watchdog

calcurse

ever wonder why software distributors bundle heavyweight, cumbersome and convoluted Calendar programs? Why not go lean with 'calcurse'. Calcurse is a shell based calendar program with a nano'esque feel that keeps the unix philosophy in mind!

andrew@Dimension-4600:~$ calcurse

┌───────────────────────────────────────────────────────────┐┌──────────────────────────────┐
│                       Appointments                        ││           Calendar           │
│───────────────────────────────────────────────────────────││──────────────────────────────│
│                                         November 27, 2011 ││        November 2011         │
│                                                           ││ Mon Tue Wed Thu Fri Sat Sun  │
│                                                           ││       1   2   3   4   5   6  │
│                                                           ││   7   8   9  10  11  12  13  │
│                                                           ││  14  15  16  17  18  19  20  │
│                                                           ││  21  22  23  24  25  26  27  │
│                                                           ││  28  29  30                  │
│                                                           ││                              │
│                                                           │└──────────────────────────────┘
│                                                           │┌──────────────────────────────┐
│                                                           ││             ToDo             │
│                                                           ││──────────────────────────────│
│                                                           ││1. Finish the Opus            │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
│                                                           ││                              │
└───────────────────────────────────────────────────────────┘└──────────────────────────────┘
───[ Sun 2011-11-27 | 22:41:47 ]───(apts)────────────────────────────────────────────────────
  i Import       0 beg Week    ^A Add Appt    ^L +1 Day      ^J +1 Week     ^R Redraw
  x Export       $ end Week    ^T Add Todo    ^H -1 Day      ^K -1 Week      o OtherCmd

X11

X11 or “the X window system” makes it possible for UNIX and Linux: both text based operating systems, to run graphical applications. X11 is the graphical core for the NIX based GUI, it takes care of your mouse, keyboard, resolution and screen refresh rates. X11 is void of hardware dependancies and can load window sessions over network connections.

Window Managers

Your window manager is a graphical layer that sits atop of X11. Window managers help keep track of your windows, provide a way to graphically interact/launch applications, manage images and video. Technically the window manager is a program running on top of X11 and it's purpose is to extend the functionality of the X window system.

Desktop Environments

The final layer of our NIX based graphical user interface. The Desktop environment takes care of extended features above the window manager such as additional task and menu bars or an interactive desktop so the user can organize his work. An example of a rather popular desktop environment would be GNOME or “GNU Network Object Model Environment”

Executing processes in the background

Sometimes you need to run a process in the background and work on something else to do this execute your command with an '&' on the end. this will run the process and return the terminal prompt back to the user.

wget

wget is a “non-interactive” utility for downloading files via http, https or ftp protocols. Wget is non-interactive becasue it does not require the user to be logged on to continue downloading. Wget is also robust meaning the downladed files integrity are check for consistency, this is particularly helpful on poor performing network connections.

To use wget: ~$ wget “example address”

ls -u

List files in order of changes made

[root@alarm ~]# ls
notes  PKGBUILDs  projects  system  vault
[root@alarm ~]# ls -u
projects  system  notes  PKGBUILDs  vault
[root@alarm ~]# 

unix Objective

Objective

Integrate what I've been learning in my UNIX class into my job @ civicbeat.com

use network monitoring and sftp tools in order utilize our domain server to its full potential.

Measurement

Use filezilla to download and upload files quickly and more efficiently then the GUI that bluehost provides. htop allows me to monitor network traffic and system resources in real time so I can test the integrity of my server.

Analysis

Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.

  • Great! my Filezilla has brought up my workflow whilst I'm working at the office. instead of editing the files on the server directly I download the PHP or CSS file onto my machine for manipulation. This means I will always have a copy if I mess something up!
  • I'm considering hosting my own server… perhaps some time in HPC next semester will help me make that decision?
  • Could the course objective be altered to be more applicable? How would you alter it? yes, how to integrate UNIX networking tools into your work flow.

Experiments

"Cool Script" bro.

Question

Is it a good idea to execute crazy scripts you find on forums?

Resources

 04-17-2009
	
quirkasaurus      
Registered User
 	

Join Date: Jan 2009
Location: canton, michigan
Posts: 479
Thanks: 0
Thanked 7 Times in 7 Posts
Quote:
Originally Posted by Ikon  
This is an old one.

At a job interview this was a script I had to explain.


Code:
:(){ :|:& };:

Hypothesis

Perhaps I should plug this in to Lab46 and see what it does? Will this script indeed be 'cool'? let us hope so!

Experiment

Script as follows:

#!/bin/bash
:(){ :|:& };:
exit 0

Then chmod 755 test (test was the name of the script) and execute ./test

Data

Uh-oh! we're caught in a pretty nasty loop… lets log out and re-establish our session, perhaps that might be a crude fix? - A wise man named Chuck Testa once said “Nope!” let's see why we can't re-establish our ssh session with an ssh -verbose or “ssh -v asowers@lab46.corning-cc.edu”

Last login: Wed Nov 30 20:33:03 on ttys001
Welcome Andrew!

iMac:~ asow123$ ssh -v asowers@lab46.corning-cc.edu
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to lab46.corning-cc.edu [143.66.50.18] port 22.
debug1: Connection established.
debug1: identity file /Users/asow123/.ssh/id_rsa type -1
debug1: identity file /Users/asow123/.ssh/id_rsa-cert type -1
debug1: identity file /Users/asow123/.ssh/id_dsa type -1
debug1: identity file /Users/asow123/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze1
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'lab46.corning-cc.edu' is known and matches the RSA host key.
debug1: Found key in /Users/asow123/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/asow123/.ssh/id_rsa
debug1: Trying private key: /Users/asow123/.ssh/id_dsa
debug1: Next authentication method: password
asowers@lab46.corning-cc.edu's password: 
debug1: Authentication succeeded (password).
Authenticated to lab46.corning-cc.edu ([143.66.50.18]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: channel 0: free: client-session, nchannels 1
Connection to lab46.corning-cc.edu closed by remote host.
Connection to lab46.corning-cc.edu closed.
Transferred: sent 1440, received 1752 bytes, in 0.0 seconds
Bytes per second: sent 117482.9, received 142937.6
debug1: Exit status -1
iMac:~ asow123$ 

Welp kids, it looks as if we're locked out of the house… it turns out this script wasn't so cool after all.

Analysis

  • script was in fact un-cool and essentially crippling.
  • what shortcomings might there be in your experiment? - I cannot do anything… :(

Conclusions

Never, EVER execute scripts all nilly-willy… Especially if you find them on some forum.

Retest

If you're doing an experiment instead of a retest, delete this section.

If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:

State Experiment

Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.

Resources

Evaluate their resources and commentary. Answer the following questions:

  • Do you feel the given resources are adequate in providing sufficient background information?
  • Are there additional resources you've found that you can add to the resources list?
  • Does the original experimenter appear to have obtained a necessary fundamental understanding of the concepts leading up to their stated experiment?
  • If you find a deviation in opinion, state why you think this might exist.

Hypothesis

State their experiment's hypothesis. Answer the following questions:

  • Do you feel their hypothesis is adequate in capturing the essence of what they're trying to discover?
  • What improvements could you make to their hypothesis, if any?

Experiment

Follow the steps given to recreate the original experiment. Answer the following questions:

  • Are the instructions correct in successfully achieving the results?
  • Is there room for improvement in the experiment instructions/description? What suggestions would you make?
  • Would you make any alterations to the structure of the experiment to yield better results? What, and why?

Data

Publish the data you have gained from your performing of the experiment here.

Analysis

Answer the following:

  • Does the data seem in-line with the published data from the original author?
  • Can you explain any deviations?
  • How about any sources of error?
  • Is the stated hypothesis adequate?

Conclusions

Answer the following:

  • What conclusions can you make based on performing the experiment?
  • Do you feel the experiment was adequate in obtaining a further understanding of a concept?
  • Does the original author appear to have gotten some value out of performing the experiment?
  • Any suggestions or observations that could improve this particular process (in general, or specifically you, or specifically for the original author).
opus/fall2011/asowers/part3.txt · Last modified: 2011/12/04 11:00 by asowers