{"id":71,"date":"2007-03-07T22:30:00","date_gmt":"2007-03-08T03:30:00","guid":{"rendered":"http:\/\/www.justdave.net\/dave\/2007\/03\/07\/macfuse\/"},"modified":"2007-03-07T22:30:00","modified_gmt":"2007-03-08T03:30:00","slug":"macfuse","status":"publish","type":"post","link":"https:\/\/www.justdave.net\/dave\/2007\/03\/07\/macfuse\/","title":{"rendered":"MacFUSE"},"content":{"rendered":"<p>So, yesterday, I overheard someone mentioning <a href=\"http:\/\/code.google.com\/p\/macfuse\/\" target=\"_blank\">MacFUSE<\/a> in a conversation and my reaction was pretty much &#8220;hey, someone ported that to the Mac?!??&#8221;\u00c2\u00a0 Indeed, and I&#8217;m apparently a little out of touch because it&#8217;s been out for a while.\u00c2\u00a0 This is one really handy tool for a sysadmin.<\/p>\n<p>Anyone who&#8217;s admined an RPM-based system knows that when you install a newer version of something, it will often drop in new configuration files, either along side the existing one with an .rpmnew extension on the end, or move your existing one to filename.rpmsave before writing it out to the original location.\u00c2\u00a0 Of course, if you&#8217;re behaving like a proper sysadmin, you have to go look and see what they changed and try to merge your existing config with the new one.\u00c2\u00a0 This is best accomplished using a visual diff\/merge utility.\u00c2\u00a0 The best one of these I&#8217;ve seen for Linux is called meld.\u00c2\u00a0 Unfortunately it has a ton of dependencies (mostly related to GNOME and X11) which are a bit much to install on every server in your farm, especially if there&#8217;s no other reason you need X11 on them.<\/p>\n<p>Now back to MacFUSE.\u00c2\u00a0 Apple distributes an awesome visual diff\/merge utility with the Mac OS X developer tools called FileMerge, which works a lot like meld (but of course, it&#8217;s a bit more polished).\u00c2\u00a0 MacFUSE is a kernel extension that allows plugins to define interfaces to arbitrary filesystems.\u00c2\u00a0 One of the plugins available for it is called &#8220;sshfs.&#8221;\u00c2\u00a0 sshfs uses the sftp server available via most ssh servers to access the filesystem of almost any machine you can ssh into.\u00c2\u00a0 This means if I can open an ssh connection to one of my servers, I can now mount its filesystem in the Finder in Mac OS X (and also via the shell).\u00c2\u00a0 This makes it easy to navigate to the server&#8217;s \/etc directory and type &#8220;opendiff config1.conf config1.conf.rpmnew&#8221; which invokes Apple&#8217;s FileMerge to compare\/merge those two files.\u00c2\u00a0 It&#8217;s a <strong>huge<\/strong> effort saver for a sysadmin using OS X on their workstation.\u00c2\u00a0 \ud83d\ude42<\/p>\n<p>Mad props to Amit Singh and all the people helping him make MacFUSE a reality!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, yesterday, I overheard someone mentioning MacFUSE in a conversation and my reaction was pretty much &#8220;hey, someone ported that to the Mac?!??&#8221;\u00c2\u00a0 Indeed, and I&#8217;m apparently a little out of touch because it&#8217;s been out for a while.\u00c2\u00a0 This is one really handy tool for a sysadmin. Anyone who&#8217;s admined an RPM-based system knows &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.justdave.net\/dave\/2007\/03\/07\/macfuse\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;MacFUSE&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-work"],"_links":{"self":[{"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":0,"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.justdave.net\/dave\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}