174 lines
7.9 KiB
HTML
174 lines
7.9 KiB
HTML
<!DOCTYPE html>
|
||
<html prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# " lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Making life easy over flaky links | duckland.org news</title>
|
||
<link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css">
|
||
<link rel="alternate" type="application/rss+xml" title="RSS" href="../rss.xml">
|
||
<link rel="canonical" href="http://www.duckland.org/posts/200912making-life-easy-over-flaky-links.html">
|
||
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><meta name="author" content="Don Harper">
|
||
<link rel="prev" href="200905search-your-email.html" title="Search your email!" type="text/html">
|
||
<link rel="next" href="201002cmus-project-restarted.html" title="cmus project restarted" type="text/html">
|
||
<meta property="og:site_name" content="duckland.org news">
|
||
<meta property="og:title" content="Making life easy over flaky links">
|
||
<meta property="og:url" content="http://www.duckland.org/posts/200912making-life-easy-over-flaky-links.html">
|
||
<meta property="og:description" content="Making life easy over flaky links
|
||
|
||
I tend to work over VPN, which we know can be flaky at times, Since I work on server, I spend a lot of time ssh’ed into hosts. I was getting tired of the lost time h">
|
||
<meta property="og:type" content="article">
|
||
<meta property="article:published_time" content="2009-12-28T17:12:00-06:00">
|
||
<meta property="article:tag" content="cli">
|
||
<meta property="article:tag" content="software">
|
||
<meta property="article:tag" content="ssh">
|
||
<meta property="article:tag" content="telecommute">
|
||
</head>
|
||
<body>
|
||
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
||
|
||
<!-- Menubar -->
|
||
|
||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"><div class="container">
|
||
<!-- This keeps the margins nice -->
|
||
<div class="navbar-header">
|
||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||
<span class="sr-only">Toggle navigation</span>
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
</button>
|
||
<a class="navbar-brand" href="http://www.duckland.org/">
|
||
|
||
<span id="blog-title">duckland.org news</span>
|
||
</a>
|
||
</div>
|
||
<!-- /.navbar-header -->
|
||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||
<ul class="nav navbar-nav">
|
||
<li>
|
||
<a href="../index.html">Home</a>
|
||
</li>
|
||
<li>
|
||
<a href="../stories/about.html">About me</a>
|
||
</li>
|
||
<li class="dropdown">
|
||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">My Sites<b class="caret"></b></a>
|
||
<ul class="dropdown-menu">
|
||
<li>
|
||
<a href="http://www.donaldharper.com">My Photo Blog</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://p365.donaldharper.com">My Attempt at a Project 365</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://www.duckland.org">My Personal and Tech Blog</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="dropdown">
|
||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Social Sites<b class="caret"></b></a>
|
||
<ul class="dropdown-menu">
|
||
<li>
|
||
<a href="https://twitter.com/duckunix">My Twitter</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://plus.google.com/+DonHarper/">My Google+</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://www.linkedin.com/in/donaldharper/">My LinkedIN</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="../archive.html">Archive</a>
|
||
</li>
|
||
<li>
|
||
<a href="../categories/index.html">Tags</a>
|
||
</li>
|
||
<li>
|
||
<a href="../rss.xml">RSS</a>
|
||
|
||
|
||
</li>
|
||
</ul>
|
||
<ul class="nav navbar-nav navbar-right"></ul>
|
||
</div>
|
||
<!-- /.navbar-collapse -->
|
||
</div>
|
||
<!-- /.container -->
|
||
</nav><!-- End of Menubar --><div class="container" id="content">
|
||
<div class="body-content">
|
||
<!--Body content-->
|
||
<div class="row">
|
||
|
||
|
||
<article class="post-text h-entry hentry postpage" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title" itemprop="headline name"><a href="#" class="u-url">Making life easy over flaky links</a></h1>
|
||
|
||
<div class="metadata">
|
||
<p class="byline author vcard"><span class="byline-name fn">Don Harper</span></p>
|
||
<p class="dateline"><a href="#" rel="bookmark"><time class="published dt-published" datetime="2009-12-28T17:12:00-06:00" itemprop="datePublished" title="2009-12-28">2009-12-28</time></a></p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</header><div class="e-content entry-content" itemprop="articleBody text">
|
||
<h1>Making life easy over flaky links</h1>
|
||
|
||
<p>I tend to work over VPN, which we know can be flaky at times, Since I work on server, I spend a lot of time ssh’ed into hosts. I was getting tired of the lost time having to restart what I was working on every time the VPN dropped (which could be as much as every 15 minutes on a bad day). While I already used screen to handle the lack of terminals (Alas, I am forced to use a Windows laptop to VPN in with), I thought there could be an easier way to do this.</p>
|
||
|
||
<p>The way I tend to work is that I ssh into a jump server, fire up screen, then ssh into the hosts I need to work on, and fire up screen on those hosts.</p>
|
||
|
||
<p>Now, this is nice, but it can get a bit tiring to do it all over
|
||
again. So, I found a tool called
|
||
<a href="http://www.harding.motd.ca/autossh/">autossh</a> which will automatically restart your ssh session if it drops for any reason but a graceful disconnect. (Well, there are others, but this is basically it). Combine this with your ssh-agent, and you can re-attach with easy. I also use <a href="http://www.funtoo.org/Keychain">keychain</a> to help manage my ssh-agent when I log in.</p>
|
||
|
||
<p>Now that the connection will come back, I need a way to re-attach to my screen session, or if there is not one, to start one for me. To do<br>
|
||
that, I have this is my .bashrc file:</p>
|
||
|
||
<pre><code>test -x $STY && screen -xR
|
||
</code></pre>
|
||
|
||
<p>This will check to make sure that we are not already inside a screen session on the local host (<em>test -x $STY</em>), and if we are not, then either attach to an existing screen session or start a new one (<em>screen -xR</em>)</p>
|
||
|
||
<p>I have define this function in my .bashrc to spawn a new ssh connection in a separate screen window:</p>
|
||
|
||
<pre><code>function ss ()
|
||
{
|
||
screen -t $1 ssh $*
|
||
}
|
||
</code></pre>
|
||
|
||
<p>Easy stuff</p>
|
||
</div>
|
||
<aside class="postpromonav"><nav><ul itemprop="keywords" class="tags">
|
||
<li><a class="tag p-category" href="../categories/cli.html" rel="tag">cli</a></li>
|
||
<li><a class="tag p-category" href="../categories/software.html" rel="tag">software</a></li>
|
||
<li><a class="tag p-category" href="../categories/ssh.html" rel="tag">ssh</a></li>
|
||
<li><a class="tag p-category" href="../categories/telecommute.html" rel="tag">telecommute</a></li>
|
||
</ul>
|
||
<ul class="pager">
|
||
<li class="previous">
|
||
<a href="200905search-your-email.html" rel="prev" title="Search your email!">Previous post</a>
|
||
</li>
|
||
<li class="next">
|
||
<a href="201002cmus-project-restarted.html" rel="next" title="cmus project restarted">Next post</a>
|
||
</li>
|
||
</ul></nav></aside></article>
|
||
</div>
|
||
<!--End of body content-->
|
||
|
||
<footer>
|
||
Contents © 2015 <a href="mailto:duck@duckland.org">Don Harper</a> - Powered by <a href="http://getnikola.com" rel="nofollow">Nikola</a>
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<script src="../assets/js/all-nocdn.js"></script><script>jQuery("a.image-reference").colorbox({rel:"gal",maxWidth:"100%",maxHeight:"100%",scalePhotos:true});</script><!-- fancy dates --><script>
|
||
moment.locale("");
|
||
fancydates(1, "YYYY-MM-DD");
|
||
</script><!-- end fancy dates -->
|
||
</body>
|
||
</html>
|