{"id":50,"date":"2009-09-29T20:45:55","date_gmt":"2009-09-30T00:45:55","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/djcp\/?p=50"},"modified":"2010-02-01T22:56:04","modified_gmt":"2010-02-02T03:56:04","slug":"cool-stuff-you-can-do-with-ssh-and-fuse","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/djcp\/2009\/09\/cool-stuff-you-can-do-with-ssh-and-fuse\/","title":{"rendered":"Cool stuff you can do with ssh and fuse"},"content":{"rendered":"<p><a href=\"http:\/\/fuse.sourceforge.net\/\">fuse<\/a> over ssh rocks, as we all know.  It allows you to mount remote filesystems anywhere you reach with SCP or SSH.  But wait &#8211; there&#8217;s more!<\/p>\n<h2>Run commands on the filesystems of hosts you don&#8217;t control<\/h2>\n<p>I needed to use <a href=\"http:\/\/www.samba.org\/rsync\/\">rsync<\/a> on a host I don&#8217;t control (godaddy, in this case). So I used fuse to remotely mount the godaddy filesystem and then used rsync to do a local copy.<\/p>\n<pre>sshfs -C godaddyuser@godaddyhostname.org:\/var\/chroot\/home\/content\/38\/382342342\/html\/ ~\/godaddy\/\r\nrsync -auvz --delete-excluded ~\/godaddy\/ ~\/godaddy-copy\/<\/pre>\n<p>I also created a git repo on that remote godaddy fuse mount &#8211; I feel naked without source control.<\/p>\n<pre>cd ~\/godaddy\/ &amp;&amp; git init<\/pre>\n<p>just like working directly on the machine &#8211; except slower because of the network overhead.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>fuse over ssh rocks, as we all know. It allows you to mount remote filesystems anywhere you reach with SCP or SSH. But wait &#8211; there&#8217;s more! Run commands on the filesystems of hosts you don&#8217;t control I needed to &hellip; <a href=\"https:\/\/archive.blogs.harvard.edu\/djcp\/2009\/09\/cool-stuff-you-can-do-with-ssh-and-fuse\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1984,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5728,6080],"class_list":["post-50","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-shellscripting","tag-ssh"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/posts\/50","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/users\/1984"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":7,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/posts\/50\/revisions"}],"predecessor-version":[{"id":55,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/posts\/50\/revisions\/55"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/media?parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/categories?post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/djcp\/wp-json\/wp\/v2\/tags?post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}