<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Life of a SysAdmin</title>
	<atom:link href="http://mattwwarren.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://mattwwarren.com/blog</link>
	<description>People work, we work.  People rest, we still work.</description>
	<lastBuildDate>Fri, 02 Dec 2011 04:14:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A New Look</title>
		<link>http://mattwwarren.com/blog/?p=178</link>
		<comments>http://mattwwarren.com/blog/?p=178#comments</comments>
		<pubDate>Fri, 02 Dec 2011 04:14:59 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=178</guid>
		<description><![CDATA[So, I decided it was time for a change.  A new look to an old place.  A lot has changed in the last few months.  I moved a couple times, got a job, got a car, all sorts of madness.  It has been terribly exciting. &#160; So, I&#8217;m working at iFactory as a sysadmin.  They]]></description>
				<content:encoded><![CDATA[<p>So, I decided it was time for a change.  A new look to an old place.  A lot has changed in the last few months.  I moved a couple times, got a job, got a car, all sorts of madness.  It has been terribly exciting.</p>
<p>&nbsp;</p>
<p>So, I&#8217;m working at iFactory as a sysadmin.  They don&#8217;t call me that but they don&#8217;t really know what it means.  You don&#8217;t either? Well, I think I can make up something convincing.  And by that I mean Wikipedia can do it for me.</p>
<p>&nbsp;</p>
<p>&#8220;A system administrator, IT systems administrator, systems administrator, or sysadmin is a person employed to maintain and operate a computer system and/or network. System administrators may be members of an information technology (IT) or Electronics and Communication Engineering department.</p>
<p>&nbsp;</p>
<p>The duties of a system administrator are wide-ranging, and vary widely from one organization to another. Sysadmins are usually charged with installing, supporting and maintaining servers or other computer systems, and planning for and responding to service outages and other problems. Other duties may include scripting or light programming, project management for systems-related projects, supervising or training computer operators, and being the consultant for computer problems beyond the knowledge of technical support staff. To perform his or her job well, a system administrator must demonstrate a blend of technical skills and responsibility.&#8221;</p>
<p>&nbsp;</p>
<p>Yup.  It&#8217;s all of that and then some.  I think there is a bigger focus on the programming aspect at iFactory because my predecessors did some programming and I am doing some automation work.  Automation work, you say?  What&#8217;s that?</p>
<p>&nbsp;</p>
<p>I won&#8217;t turn to Wikipedia for that one.  Automation is the process of taking a bunch of tasks and, through scripting or some other means, allowing them to run in a repeatable fashion.  Some of that work is through bash scripts, like the one posted for TF2, and some of is through tool like puppet or cfengine.</p>
<p>&nbsp;</p>
<p>I, personally, use puppet.  Just like the reason I fold my towels, it&#8217;s what I grew up on.  I&#8217;m not a puppet pro but I know it well enough and I&#8217;ve seen it used in enough places to have some best practices.  Since starting a iFactory, the time spent on new server setups has decreased from a couple days to a couple hours.</p>
<p>&nbsp;</p>
<p>The process isn&#8217;t perfect but it&#8217;s getting there.  I have a much smaller list of work still to be done than I had 6 months ago.  It&#8217;s a good feeling when you can go through a checklist of items and laugh at the estimates beside them.</p>
<p>&nbsp;</p>
<p>So there you have it, when the world slips you a Jeffrey, look it up on Wikipedia.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=178</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mat Kearney</title>
		<link>http://mattwwarren.com/blog/?p=173</link>
		<comments>http://mattwwarren.com/blog/?p=173#comments</comments>
		<pubDate>Sat, 08 Oct 2011 23:36:37 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=173</guid>
		<description><![CDATA[For those of you who don&#8217;t know me&#8230;. a. why are you reading this blog?  You creepers.  And 2. I flipping love Mat Kearney&#8217;s music.  He recently came out with a new album, Young Love.  It rules.  End of story.  Go listen to it somewhere.  iTunes has pretty long previews available, I&#8217;m sure most of]]></description>
				<content:encoded><![CDATA[<p>For those of you who don&#8217;t know me&#8230;. a. why are you reading this blog?  You creepers.  And 2. I flipping love Mat Kearney&#8217;s music.  He recently came out with a new album, Young Love.  It rules.  End of story.  Go listen to it somewhere.  iTunes has pretty long previews available, I&#8217;m sure most of his <a title="songs" href="http://www.youtube.com/watch?v=36ScW4CEcPw" target="_blank">songs</a> made it on to <a title="YouTube" href="http://www.youtube.com/watch?v=pJgJL4NnW8M" target="_blank">YouTube</a> and there are some <a title="music videos" href="http://www.youtube.com/watch?v=L9qUMr6feOI" target="_blank">music videos</a> on there.</p>
<p>He&#8217;s coming to the Boston House of Blues in a month.  Naturally, I&#8217;m going.  Last time he came to Boston, I met him and got a <a title="picture" href="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/269482_990226555899_1823090_47330911_5728935_n.jpg" target="_blank">picture</a>.  That was flipping sweet.</p>
<p>This album is all about the get up and move style of music.  It makes you want to dance and get into the emotions of the music.  The story goes that he took stories from people he met and some of his own experiences for the influence in his songs.</p>
<p>Anyway, I listened to the new album non-stop for a week.  There are a couple songs I can stand to skip now but nothing makes me think, &#8216;ugh, this song?&#8217;  That&#8217;s pretty rare for me.  With almost 6000 songs to choose from on my iPod, there is always a reason to get to the next song.  I&#8217;m sure one of my faithful readers is thinking, &#8216;hah! 6000?  I got that beat no problem.&#8217;  I hope you appreciate the shout-out.</p>
<p>Since the album&#8217;s release, I&#8217;ve turned 3 new people on to Mat&#8217;s music.  They&#8217;ve all enjoyed it thoroughly and I hope they turned 3 people on to it.  Soon it will be like that <a title="movie" href="http://www.imdb.com/title/tt0223897/" target="_blank">movie</a> with that ridiculous <a title="kid" href="http://www.imdb.com/name/nm0005286/" target="_blank">kid</a>.  (By the way, the current main picture on that link looks like he got punched in the face.  Ha!)</p>
<p>I think that&#8217;s good enough for now.  Dinner is calling and I&#8217;m out of <a title="material" href="http://www.youtube.com/watch?v=NcYpBRJgdhQ" target="_blank">material</a>.</p>
<p>Well, <a title="almost" href="http://www.youtube.com/watch?v=8tph3z2aTB8" target="_blank">almost</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=173</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This one is heavy</title>
		<link>http://mattwwarren.com/blog/?p=171</link>
		<comments>http://mattwwarren.com/blog/?p=171#comments</comments>
		<pubDate>Sat, 08 Oct 2011 23:14:30 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=171</guid>
		<description><![CDATA[I just want to warn you folks, this one touches on some pretty personal stuff.  I don&#8217;t really know how to get it out there any other way. My grandmother is dying.  She had something up with her gall bladder and went to the hospital.  They did one procedure to get things working again and]]></description>
				<content:encoded><![CDATA[<p>I just want to warn you folks, this one touches on some pretty personal stuff.  I don&#8217;t really know how to get it out there any other way.</p>
<p>My grandmother is dying.  She had something up with her gall bladder and went to the hospital.  They did one procedure to get things working again and sent her home.  I knew it wasn&#8217;t good but I didn&#8217;t completely understand the impact of the situation until my dad told me.  It took me back a little, I didn&#8217;t know exactly what to do.</p>
<p>We&#8217;re in Maine this weekend and I&#8217;m noticing all sorts of changes.  She gets tired very easily and forgets things easily.  She repeats comments after a few minutes.  She sleeps later and seems to be comfortable so it&#8217;s not all bad.  When she&#8217;s uncomfortable, she will adjust herself or ask for something to be adjusted.  It&#8217;s nothing I want to think about too much but it&#8217;s also difficult to avoid.</p>
<p>My dad keeps saying it&#8217;s important to make sure she&#8217;s happy and comfortable.  So we&#8217;ll keep plugging along.  As long as she&#8217;s happy, we can all be happy, too.</p>
<p>I think I&#8217;ll go work on something more exciting now.  Maybe another post coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=171</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing cover letters is hard, m&#8217;kay?</title>
		<link>http://mattwwarren.com/blog/?p=165</link>
		<comments>http://mattwwarren.com/blog/?p=165#comments</comments>
		<pubDate>Tue, 15 Mar 2011 01:33:59 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=165</guid>
		<description><![CDATA[Seriously.  It&#8217;s like all the stuff you need to make cookies is staring you in the face.  All of a sudden, the eggs break open and slap you in the eye socket.  The milk pours down your front and the flour projects itself on to your favorite shirt.  And just when you think you have]]></description>
				<content:encoded><![CDATA[<p>Seriously.  It&#8217;s like all the stuff you need to make cookies is staring you in the face.  All of a sudden, the eggs break open and slap you in the eye socket.  The milk pours down your front and the flour projects itself on to your favorite shirt.  And just when you think you have them under control, the chocolate chips melt and streak down your pants in an embarrassing manner.</p>
<p>Ok, back to business.  I&#8217;m trying to get a letter out to a company to get an interview and a job.  I know I can do all the stuff they ask me to do but I can&#8217;t tell them in the right way.  Part of me wants to scream, &#8220;oh forget this crap, look at the silly resume.&#8221;  Obviously, they want this letter for a reason.</p>
<p>So, the major thing to remember is that they want to make sure you can do the job.  But your resume is about you, not the cover letter.  The cover letter is about THEM.  Make your achievements and experiences tie back to the stuff they outline in the job posting.  I suck at it so I won&#8217;t give examples but someone should be able to figure this out.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=165</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job searchin</title>
		<link>http://mattwwarren.com/blog/?p=161</link>
		<comments>http://mattwwarren.com/blog/?p=161#comments</comments>
		<pubDate>Mon, 14 Mar 2011 22:54:22 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=161</guid>
		<description><![CDATA[So I applied for a job.  (yay!) I interviewed a few times (yay!) I didn&#8217;t get the job (boo!) I was rather upset yesterday when I heard back.  You know that sinking feeling you get in your stomach when someone says, &#8220;unfortunately&#8230;.&#8221;?  Yeah, it was like that. So, for an hour or so I moped]]></description>
				<content:encoded><![CDATA[<p>So I applied for a job.  (yay!)</p>
<p>I interviewed a few times (yay!)</p>
<p>I didn&#8217;t get the job (boo!)</p>
<p>I was rather upset yesterday when I heard back.  You know that sinking feeling you get in your stomach when someone says, &#8220;unfortunately&#8230;.&#8221;?  Yeah, it was like that.</p>
<p>So, for an hour or so I moped around.  I was in lab when I got the call so I sat there and worked a little more before giving up and leaving.</p>
<p>I sent a text to each of my parents.  My mother, at lunch at the time, was the first to respond.  She was comforting and apologized but I still felt like crap.  So I called my dad.</p>
<p>He was with a client so he said he&#8217;d call back.</p>
<p>He called a little while later and we talked about the interview.  I started to feel better.  We talked about random stuff after that.  Eventually, he told me Winnie the Pooh is a Daoist.  I&#8217;m not sure where that came from but I hope someone can shed some light on it.</p>
<p>So, I&#8217;m looking for a job.  Anyone need a Jr. Systems Administrator with an appetite for knowledge and enough drive to run a small website for months?</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=161</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responsibility is confusing</title>
		<link>http://mattwwarren.com/blog/?p=151</link>
		<comments>http://mattwwarren.com/blog/?p=151#comments</comments>
		<pubDate>Thu, 03 Feb 2011 20:33:18 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=151</guid>
		<description><![CDATA[So today in The Management Practices of Great Organizations, we had an activity where we were spread out and limited to very specific functions.  We had one person who could move the finished materials for everyone from one station to the next.  Horrible inefficient, I know.  But it was supposed to demonstrate that.  It also]]></description>
				<content:encoded><![CDATA[<p>So today in The Management Practices of Great Organizations, we had an activity where we were spread out and limited to very specific functions.  We had one person who could move the finished materials for everyone from one station to the next.  Horrible inefficient, I know.  But it was supposed to demonstrate that.  It also showed that the managers were more concerned with overall quality.  The individual pieces were only worried about their parts.  The more exposure we have to the rest of the world, the more we are concerned with how our pieces fit.</p>
<p>So this brings up an interesting question.  As we become more important, how do we balance the quality of the world with the quality of our parts?</p>
<p>We are supposed to increase our efficiency and throughput as we spent more time in a place.  At the same time, we should be taking on more initiative and responsibility.  So, that&#8217;s a lot to deal with and keep track of and if the company is growing, so is the need for initiative and responsibility.</p>
<p>That&#8217;s why managers make the big bucks.</p>
<p>So, I started to wonder in class, did I completely fail at that?  My level of responsibility jumped in my last coop.  Did I suddenly see the big picture and how everything fit together and tried to apply my same idea that everything should be perfected in the first go around?  If so, did it make my mind melt?  There was a lot going on, both in and out of work.  It was a mess on some days.</p>
<p>Some of that, however, is back to normal and I&#8217;m now back in class.  Here we come to my classes this semester.  I&#8217;m trying to balance a logic class, the above mentioned management course, an international business course, a computer sociology class and a random &#8220;give a presentation on some stuff&#8221; class.  I forget what movie it was in, but there was a machine that pulled a person by each of their limbs.  Some nights, that&#8217;s what it feels like.</p>
<p>So, here we are, it&#8217;s senior year, I know what I want to do but I can&#8217;t do it yet.  I know where I&#8217;m going to live and I can&#8217;t live there yet.  And I&#8217;m in classes where it feels like the professors are trying to cram in just a little more before we finally have freedom.</p>
<p>May 6th can&#8217;t come fast enough.  Interview tomorrow, wish me luck.  I may need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=151</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TF2 scripts: Part 2</title>
		<link>http://mattwwarren.com/blog/?p=144</link>
		<comments>http://mattwwarren.com/blog/?p=144#comments</comments>
		<pubDate>Wed, 29 Dec 2010 16:52:56 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=144</guid>
		<description><![CDATA[#!/bin/bash # script to bzip and move maps from tf/maps to redirect/maps # static variables here for easy changing homedir=/home/tfuser/tf2server/orangebox/tf wwwdir=/var/www/redirects homemaplog=/var/log/tf/tfmaps.home.log wwwmaplog=/var/log/tf/tfmaps.www.log diffmaplog=/var/log/tf/tfmaps.diff.log homesoundlog=/var/log/tf/tfsound.home.log wwwsoundlog=/var/log/tf/tfsounds.www.log diffsoundlog=/var/log/tf/tfsounds.diff.log # remove old logs rm $homemaplog rm $wwwmaplog rm $diffmaplog rm $homesoundlog rm $wwwsoundlog rm $diffsoundlog # write directory listings to file ls -1 $homedir/maps &#62; $homemaplog ls]]></description>
				<content:encoded><![CDATA[<pre>#!/bin/bash
# script to bzip and move maps from tf/maps to redirect/maps

# static variables here for easy changing
homedir=/home/tfuser/tf2server/orangebox/tf
wwwdir=/var/www/redirects
homemaplog=/var/log/tf/tfmaps.home.log
wwwmaplog=/var/log/tf/tfmaps.www.log
diffmaplog=/var/log/tf/tfmaps.diff.log
homesoundlog=/var/log/tf/tfsound.home.log
wwwsoundlog=/var/log/tf/tfsounds.www.log
diffsoundlog=/var/log/tf/tfsounds.diff.log

# remove old logs
rm $homemaplog
rm $wwwmaplog
rm $diffmaplog
rm $homesoundlog
rm $wwwsoundlog
rm $diffsoundlog

# write directory listings to file
ls -1 $homedir/maps &gt; $homemaplog
ls -1 $wwwdir/maps &gt; $wwwmaplog
ls -R1 $homedir/sound &gt; $homesoundlog
ls -R1 $wwwdir/sound &gt; $wwwsoundlog

# diff the listings and output to file
# output is used to determine which maps to copy
diff -IbBq $homemaplog $wwwmaplog | grep .bsp &gt;&gt; $diffmaplog
diff -IbBq $homesoundlog $wwwsoundlog | grep .wav &gt;&gt; $diffsoundlog

# remove extra characters from output file
sed -i 's/\(.\{2\}\)//' $diffmaplog
sed -i 's/\(.\{2\}\)//' $diffsoundlog

# to avoid confusion, change to homedir and move maps
cd $homedir/maps
rsync -rlpt $homedir/maps/*.bsp $wwwdir/maps

# change to wwwdir and zip maps
cd $wwwdir/maps
bzip2 -qzk `cat $diffmaplog`

# to avoid confusion, change to homedir and move sounds
cd $homedir/sound
rsync -rlpt $homedir/sound/ $wwwdir/sound

# change the files so they are accessible outside
chmod 775 $wwwdir/maps/*.bz2
chmod -R 775 $wwwdir/sound

ls -1 $homedir/maps |grep .bsp | awk -F"." '{ print $1 }' &gt; /home/tfuser/tf2server/orangebox/tf/addons/sourcemod/configs/adminmenu_maplist.ini
cp /home/tfuser/tf2server/orangebox/tf/addons/sourcemod/configs/adminmenu_maplist.ini /home/tfuser/tf2server/orangebox/tf/mapcycle.txt
cp /home/tfuser/tf2server/orangebox/tf/addons/sourcemod/configs/adminmenu_maplist.ini /home/tfuser/tf2server/orangebox/tf/maplist.txt
</pre>
<p>So this does a listing of the tf server directory and compares it to the public distribution directory.  Once it has the diff, it copies the remaining ones and bzips the maps so the client can download.  As you can see, it also does sound.  I used that for an old mod that&#8217;s now broken.  Fine to leave if you found something that requires sounds to be downloaded.</p>
<p>As a final step, it updates the map listings in sourcemod so the maps all show up for admin menus.  Obviously, if you don&#8217;t have sourcemod installed, you can drop those steps.  Or install sourcemod.  I don&#8217;t know of a better mod plugin out there.</p>
<p>The script is run as a normal user&#8217;s crontab (*/5 * * * *) and will work as long as the folders are user or group read/writable.  One of the steps of my startup/update script is to ensure the tf server home dir is read/writable by group web.  For whatever stupid reason, the source updater changes everything to root:root and must be run by root.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=144</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A sample</title>
		<link>http://mattwwarren.com/blog/?p=140</link>
		<comments>http://mattwwarren.com/blog/?p=140#comments</comments>
		<pubDate>Sat, 11 Dec 2010 18:49:46 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=140</guid>
		<description><![CDATA[#!/bin/bash # script to find a running tf2 server and start it, if it is not running export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ip=`ifconfig  &#124; grep 'inet addr:'&#124; grep -v '127.0.0.1' &#124; cut -d: -f2 &#124; awk '{ print $1}'` homedir="/home/tfuser" rundir="/home/tfuser/tf2server/orangebox" updatecmd="./steam -game tf -command update -dir tf2server/" runcmd="./srcds_run -console -game tf -hostport 27015 +maxplayers 12 +map ctf_2fort]]></description>
				<content:encoded><![CDATA[<pre>#!/bin/bash
# script to find a running tf2 server and start it, if it is not running

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ip=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
homedir="/home/tfuser"
rundir="/home/tfuser/tf2server/orangebox"
updatecmd="./steam -game tf -command update -dir tf2server/"
runcmd="./srcds_run -console -game tf -hostport 27015 +maxplayers 12 +map ctf_2fort -ip $ip -debug"
pidfile="/var/run/tf2.pid"

cd $homedir

case "$1" in
 start)
 $updatecmd
 chown -R tfuser:web $homedir
 chmod -R 770 $rundir
 if ! (pgrep srcds_run &gt; $pidfile); then
   echo "tf2 server not running, starting..."
   cd $rundir
   screen -d -m sudo -u tfuser $runcmd
   echo "tf2 server started in screen session"
 else
   echo "tf2 server running in screen session"
 fi
 ;;
 stop)
 # No-op
 echo 'Killing TF2 process from PID file'
 if [ -f $PIDFILE ] ; then
   PID=`cat $pidfile`
   kill -3 $PID
   if kill -9 $PID ; then
     echo "tf2 process stopped"
   else
     echo "tf2 process could not be stopped"
   fi
   rm -f $pidfile
 fi
 ;;
 restart)
 /usr/local/bin/checktf.sh stop
 /usr/local/bin/checktf.sh start
 ;;
 update)
 $updatecmd
 chown -R tfuser:web $homedir
 chmod -R 770 $rundir
 ;;
 noupdate)
 if ! (pgrep srcds_run &gt; $pidfile); then
   echo "tf2 server not running, starting..."
   cd $rundir
   screen -d -m sudo -u tfuser $runcmd
   echo "tf2 server started"
 else
   echo "tf2 server running"
 fi
 ;;
 *)
 echo "Usage: $0 start(implies update)|stop|restart|noupdate|update" &gt;&amp;2
 exit 3
 ;;
esac
</pre>
<p>A pretty straightforward bash script to start a tf2 server.  It assumes a few things.<br />
1.) You have a separate user for running the server (it&#8217;s a security thing)<br />
2.) The server should listen on the eth0 (or whatever is the first in ifconfig) device.</p>
<p>One of the drawbacks of this script, or maybe of the server program in general, is that it runs in a screen.  I may get around to changing that and dumping everything to a log file.  The benefit of that is to have Nagios check the log file for the update notification.  Currently I have a cronjob running a daily restart.  The only benefit of the restart is if the server is dead for a long time and the map doesn&#8217;t change, the log files can get bloated and cause severe lag.</p>
<p>Maybe later I&#8217;ll post my mapcheck script.  It updates the public directory that serves maps and other custom content to game clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=140</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The World Spins</title>
		<link>http://mattwwarren.com/blog/?p=137</link>
		<comments>http://mattwwarren.com/blog/?p=137#comments</comments>
		<pubDate>Tue, 07 Dec 2010 02:46:32 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=137</guid>
		<description><![CDATA[And we just have to go along with it. Man, I&#8217;ve been busy. So, I don&#8217;t have a job.  I think that&#8217;s why I wanted to sit down and write. This bothers me.  More than I would prefer and more than I hopefully let on.  It bothers me because I don&#8217;t exactly know why I]]></description>
				<content:encoded><![CDATA[<p>And we just have to go along with it.</p>
<p>Man, I&#8217;ve been busy.</p>
<p>So, I don&#8217;t have a job.  I think that&#8217;s why I wanted to sit down and write.</p>
<p>This bothers me.  More than I would prefer and more than I hopefully let on.  It bothers me because I don&#8217;t exactly know why I don&#8217;t have a job.  Lack of funding?  Poor reason.  Lack of skills?  I hope not but possible.  Lack of trust?  Possible.  I&#8217;m very good at making mistakes.  Lack of social acceptance?  Can&#8217;t do anything about that but it would also be really disappointing.  Meh.</p>
<p>So, what&#8217;s new?</p>
<p>I spent a lot of time the last few months trying to build a network of skills.  I don&#8217;t know any new things I&#8217;ve learned.  Ruby.  Ok, I learned one thing.  The rest was poking around the Internet for reliable sources for when I get somewhere and have responsibilities for all sorts of things.  I think one of the biggest challenges is staying on top of business and the advancements in the world around you.</p>
<p>Enter social media.  Facebook, Twitter, blogs, IRC, the various flavors of IM.</p>
<p>Oh, remember that post about things to know if you want to be awesome&#8230; I mean, a Systems Administrator.  This is part 2.</p>
<p>So, get out there and find people and don&#8217;t bother them with silly questions, or at least not too often.</p>
<p>In the last week I have witnessed a few people say really silly things to people who run or contribute often to open-source projects.  That is a huge mistake because everyone laughs at you.  Maybe not to your face but you&#8217;ve made yourself seem pretty naive.  That&#8217;s completely acceptable because you are probably still young in your career but if you spent some time just following conversations, you could have avoided that.</p>
<p>Anyway, open source projects are cool.  You can pick one up and learn some neat languages and get your name out in the community (resume builder!).  But get to know the people in the project and know their systems before getting too involved.</p>
<p>Programming languages.  Good at them?  Awesome.  I&#8217;m not.  I learn logic and then rely on Google.  If I was a full-time programmer, I would probably be worried about this.  The nice part about writing a bunch of different scripts is that I have a reference from those for later works.  Bad side?  I&#8217;m not fluent in any particular language.</p>
<p>I understand how a program runs and, usually, why it&#8217;s designed a certain way.  If I don&#8217;t understand it, I can, again usually, figure it out.  So what happens when I&#8217;m standing on my own two feet and have to start these things from scratch or it&#8217;s expected that I can weigh in on these things?  I don&#8217;t know.  I&#8217;ll have to stare at some code and design decisions before then, I guess.</p>
<p>That&#8217;s the great part about being on an internship in a place like STM.  There are a bunch of really intelligent people who write clean, well-designed (I hope) code and can explain and backup their decisions.  And when they can&#8217;t, they can discuss with others how to go about a certain issue.</p>
<p>So, anyone looking for a Systems Administrator?</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=137</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Change of plans</title>
		<link>http://mattwwarren.com/blog/?p=131</link>
		<comments>http://mattwwarren.com/blog/?p=131#comments</comments>
		<pubDate>Wed, 01 Sep 2010 03:47:51 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Eagle Eye]]></category>
		<category><![CDATA[Goo Goo Dolls]]></category>
		<category><![CDATA[movie review]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[Shia LeBeouf]]></category>
		<category><![CDATA[Wanted]]></category>

		<guid isPermaLink="false">http://mattwwarren.com/blog/?p=131</guid>
		<description><![CDATA[First, before I forget, I had a spam comment that said, &#8220;why aren&#8217;t there bullet proof pants?&#8221;  This is a very good question and should be discussed at great length at another time. Now, on to the funk. ATTENTION LOYAL BLOG READERS.  HA! I am going to start a new section.  A review of movies,]]></description>
				<content:encoded><![CDATA[<p>First, before I forget, I had a spam comment that said, &#8220;why aren&#8217;t there bullet proof pants?&#8221;  This is a very good question and should be discussed at great length at another time.</p>
<p>Now, on to the funk.</p>
<p>ATTENTION LOYAL BLOG READERS.  HA!</p>
<p>I am going to start a new section.  A review of movies, books and music.  This will probably not bring more regular updates but at least they won&#8217;t just me mindless ramblings.</p>
<p>Ok, here we go.</p>
<p>Eagle Eye with Shia LaBeouf</p>
<p>This was not a terrible movie.  It felt like Wanted meets Portal.</p>
<p>Huh, I had a lot more in my head to say about this movie before I sat down to write.</p>
<p>It&#8217;s a little end of the worldish and you can suddenly think, &#8220;Aw jeez, this is predictable.&#8221;  But if you have a list, this is something you can throw on there in between known good movies and unknown complete shots in the dark.</p>
<p>Maybe I was going to go on and on about how I only see LaBeouf  as that kid from Even Stevens.  Oh well, it&#8217;s late and I really just want to write about the new Goo Goo Dolls album I purchased tonight.  But that will be next on the writing list, since I have to listen to the whole thing first.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwwarren.com/blog/?feed=rss2&#038;p=131</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
