CINXE.COM

SysAdmin | Linux Journal

<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# " class="no-js wf-loading"> <head> <meta charset="utf-8" /> <meta name="Generator" content="Drupal 9 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" href="/themes/linuxjournal/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="alternate" type="application/rss+xml" title="SysAdmin" href="https://www.linuxjournal.com/taxonomy/term/21/feed" /> <title>SysAdmin | Linux Journal</title> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/align.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/fieldgroup.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/container-inline.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/clearfix.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/details.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/hidden.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/item-list.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/js.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/nowrap.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/position-container.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/progress.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/reset-appearance.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/resize.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/sticky-header.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-counter.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-report-counters.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-report-general-info.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/tablesort.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/tree-child.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/poll/css/poll.base.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/poll/css/poll.theme.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/views/css/views.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/webform/modules/webform_bootstrap/css/webform_bootstrap.css?smwnh4" /> <link rel="stylesheet" media="all" href="/libraries/shariff/shariff.complete.css?smwnh4" /> <link rel="stylesheet" media="all" href="/themes/linuxjournal/css/style.css?smwnh4" /> <link rel="stylesheet" media="all" href="/themes/linuxjournal/css/fonts.css?smwnh4" /> <!-- <script defer src="https://use.fontawesome.com/releases/v5.0.9/js/all.js" integrity="sha384-8iPTk2s/jMVj81dnzb/iFR2sdA7u06vHJyyLlAd4snFpCl/SnyUjRrbdJsw1pGIl" crossorigin="anonymous"></script>--> <script> // Non-blocking webfonts. (function iife() { 'use strict'; // JS is able to start executing. document.documentElement.classList.remove('no-js'); // Optimization for Repeat Views // Stop early for repeat views that have already cached fonts. if (sessionStorage.fontsLoadedLateef && sessionStorage.fontsLoadedOpensans /* && sessionStorage.fontsLoadedNEWFONT */) { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-opensans'); document.documentElement.classList.add('wf-lateef'); // document.documentElement.classList.add('wf-NEWFONT'); return; } // Inlined Font Face Observer script + Promise polyfill. /*! Font Face Observer v2.0.13 - © Bram Stein. License: BSD-3-Clause */ (function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}} function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})}; function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;k<a.length;k+=1)u(a[k]).c(d(k),c)})}function x(a){return new n(function(b,c){for(var d=0;d<a.length;d+=1)u(a[d]).c(b,c)})};window.Promise||(window.Promise=n,window.Promise.resolve=u,window.Promise.reject=t,window.Promise.race=x,window.Promise.all=w,window.Promise.prototype.then=n.prototype.c,window.Promise.prototype["catch"]=n.prototype.g);}()); (function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function r(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;"; this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)} function t(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function y(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function z(a,b){function c(){var a=k;y(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);y(a)};function A(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var B=null,C=null,E=null,F=null;function G(){if(null===C)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);C=!!a&&603>parseInt(a[1],10)}else C=!1;return C}function J(){null===F&&(F=!!document.fonts);return F} function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} A.prototype.load=function(a,b){var c=this,k=a||"BESbswy",q=0,D=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=D?b():document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),N=new Promise(function(a,c){q=setTimeout(c,D)});Promise.race([N,M]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function u(){var b;if(b=-1!= f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==v&&g==v&&h==v||f==w&&g==w&&h==w||f==x&&g==x&&h==x)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function I(){if((new Date).getTime()-H>=D)d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth, g=n.a.offsetWidth,h=p.a.offsetWidth,u();q=setTimeout(I,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,v=-1,w=-1,x=-1,d=document.createElement("div");d.dir="ltr";t(e,L(c,"sans-serif"));t(n,L(c,"serif"));t(p,L(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);v=e.a.offsetWidth;w=n.a.offsetWidth;x=p.a.offsetWidth;I();z(e,function(a){f=a;u()});t(e,L(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;u()});t(n,L(c,'"'+c.family+'",serif')); z(p,function(a){h=a;u()});t(p,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}()); // Load and observe Lateef var Lateef = new FontFaceObserver('Lateef', {weight: 400}); Promise.all([Lateef.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-lateef'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedLateef = true; }); // Load and observe Open Sans var os300 = new FontFaceObserver('Open Sans', {weight: 300}); var os400 = new FontFaceObserver('Open Sans', {weight: 400}); Promise.all([os300.load(), os400.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-opensans'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedOpensans = true; }); // Load and observe NEWFONT /* var NEWFONT = new FontFaceObserver('NEWFONT', {weight: 400}); Promise.all([NEWFONT.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-NEWFONT'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedNEWFONT = true; }); */ })(); </script> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script src=https://slashdot.org/country.js></script> <script src="/themes/linuxjournal/js/ada.js"></script> <script src="/themes/linuxjournal/js/accessibility.js"></script> <script>window.addEventListener('load', function() { new Accessibility(); });</script> <script src="//a.fsdn.com/con/js/sftheme/cmp2.js"></script> <link rel="stylesheet" href="//a.fsdn.com/con/css/sftheme/sandiego/cmp.css" type="text/css"> <link rel="stylesheet" href="/themes/linuxjournal/css/ccpa.css" type="text/css"> <script>window.bizx.cmp.init({ geo: window });</script> <script> function bm_trace() { (function (w,d,t) { _ml = w._ml || {}; _ml.eid = '771'; var s, cd, tag; s = d.getElementsByTagName(t)[0]; cd = new Date(); tag = d.createElement(t); tag.async = 1; tag.src = 'https://ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth(); s.parentNode.insertBefore(tag, s); })(window,document,'script'); } bizx.cmp.ifConsent('', ['all', 'bombora'],bm_trace); </script> </head> <body class="path-taxonomy has-glyphicons"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div id="wrap"> <div class="leader-wrapper" id="leader-wrapper"> </div> <div class="brand-wrapper" id="brand-wrapper"> <div class="brand container"> <div class="region region-brand"> <a class="logo navbar-btn" href="/" title="Home" rel="home"> <h1><img src="/themes/linuxjournal/images/ljlogo.png" alt="Linux Journal" /></h1> </a> <section id="block-topbannernearlogo" class="block block-block-content block-block-contenta8e75a3d-967c-416d-8944-4015d1f90a84 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><a href="https://www.windriver.com/products/elxr-pro?utm_source=ba&amp;utm_medium=pa&amp;utm_campaign=ba-dg-amer-awa-vsmf-eLxrProLau_lin_dis_09172024"><img alt="Windriver eLxrPro" data-entity-type="file" data-entity-uuid="8ba04368-7803-4329-a196-dc1ea780ec2a" src="/sites/default/files/inline-images/WindRiver-eLxrPro_0.png" width="728" height="90" loading="lazy" /></a></div> </section> </div> </div> <div class="header-wrapper"> <header class="navbar navbar-default container" id="navbar" role="banner"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <div id="navbar-collapse" class="navbar-collapse collapse"> <div class="region region-navigation-collapsible"> <section id="block-linuxjournal-main-menu" class="block block-system block-system-menu-blockmain clearfix navbar__menu col-xs-12 col-sm-8"> <ul class="menu menu--main nav navbar-nav"> <li class="expanded dropdown active active-trail first"> <a href="/" class="dropdown-toggle active-trail" data-toggle="dropdown" data-drupal-link-system-path="&lt;front&gt;">Topics+ <span class="caret"></span></a> <ul class="dropdown-menu"> <li class="first"> <a href="/tag/cloud">Cloud</a> </li> <li> <a href="/tag/containers" data-drupal-link-system-path="taxonomy/term/978">Containers</a> </li> <li> <a href="/tag/desktop">Desktop</a> </li> <li> <a href="/tag/kernel" data-drupal-link-system-path="taxonomy/term/662">Kernel</a> </li> <li> <a href="/tag/mobile">Mobile</a> </li> <li> <a href="/tag/networking">Networking</a> </li> <li> <a href="/tag/privacy">Privacy</a> </li> <li> <a href="/tag/programming">Programming</a> </li> <li> <a href="/tag/security" data-drupal-link-system-path="taxonomy/term/31">Security</a> </li> <li> <a href="/tag/servers">Servers</a> </li> <li class="active active-trail last"> <a href="/tag/sysadmin" class="active-trail is-active" data-drupal-link-system-path="taxonomy/term/21">SysAdmin</a> </li> </ul> </li> <li> <a href="/news" data-drupal-link-system-path="news">News</a> </li> <li class="last"> <a href="/books" data-drupal-link-system-path="books">eBooks</a> </li> </ul> </section> <section class="search-block-form block block-search block-search-form-block clearfix navbar__search col-xs-12 col-sm-4 col-md-4 col-md-offset-0" data-drupal-selector="search-block-form" id="block-linuxjournal-search" role="search"> <h2 class="block-title sr-only">Search</h2> <form action="/search/node" method="get" id="search-block-form" accept-charset="UTF-8"> <div class="form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group"> <label for="edit-keys" class="control-label sr-only">Search</label> <div class="input-group"><input title="Enter the terms you wish to search for." data-drupal-selector="edit-keys" class="form-search form-control" placeholder="Search" type="search" id="edit-keys" name="keys" value="" size="15" maxlength="128" /><span class="input-group-btn"><button type="submit" value="Search" class="button js-form-submit form-submit btn-primary btn icon-only" name=""><span class="sr-only">Search</span><span class="icon glyphicon glyphicon-search" aria-hidden="true"></span></button></span></div> <div id="edit-keys--description" class="description help-block"> Enter the terms you wish to search for. </div> </div> <div class="form-actions form-group js-form-wrapper form-wrapper" data-drupal-selector="edit-actions" id="edit-actions"></div> </form> </section> </div> </div> <div class="navbar-header"> <div class="region region-navigation"> <section id="block-mobilenavigation" class="block block-system block-system-menu-blockmenu-mobile-navbar clearfix col-xs-12 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-0 navbar__menu navbar__mobilenavigation"> <ul class="menu menu--menu-mobile-navbar nav"> <li class="first"> <a href="/news" data-drupal-link-system-path="news">News</a> </li> <li> <a href="/popular" data-drupal-link-system-path="popular">Popular</a> </li> <li class="last"> <a href="/recent" data-drupal-link-system-path="recent">Recent</a> </li> </ul> </section> </div> </div> </header> </div> </div> <div role="main" class="main-container container js-quickedit-main-content" id="main"> <div class="row"> <section class="col-sm-12"> <div class="highlighted"> <div class="region region-highlighted"> <div data-drupal-messages-fallback class="hidden"></div> </div> </div> <a id="main-content"></a> <div class="region region-content"> <h1 class="page-header">SysAdmin</h1> <div class="views-element-container form-group"><div class="view view-taxonomy-term view-id-taxonomy_term view-display-id-page_1 js-view-dom-id-9091428aeb237067ca95469e06317a55c6e971636296fc5431c674f020416202"> <div class="view-header"> <div about="/tag/sysadmin" typeof="schema:Thing"> <span property="schema:name" content="SysAdmin" class="hidden"></span> </div> </div> <div class="view-content"> <div class="views-row"><article data-history-node-id="1341189" role="article" about="/content/simplifying-linux-system-administration-webmin" class="story is-promoted teaser clearfix"> <div class="teaser-image"> <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <a href="/content/simplifying-linux-system-administration-webmin"> <picture> <source srcset="/sites/default/files/styles/200x200_square/public/nodeimage/story/simplifying-linux-system-administration-with-webmin.jpg?itok=6ApiCJff 1x" media="all and (min-width: 768px)" type="image/jpeg"/> <source srcset="/sites/default/files/styles/thumbnail/public/nodeimage/story/simplifying-linux-system-administration-with-webmin.jpg?itok=UqFW3wQ1 1x" media="all and (max-width: 767px)" type="image/jpeg"/> <img src="/sites/default/files/styles/thumbnail/public/nodeimage/story/simplifying-linux-system-administration-with-webmin.jpg?itok=UqFW3wQ1" alt="Simplifying Linux System Administration with Webmin" typeof="foaf:Image" class="img-responsive" /> </picture> </a> </div> </div> <div class="teaser-text"> <h2> <a href="/content/simplifying-linux-system-administration-webmin" rel="bookmark"> <span>Simplifying Linux System Administration with Webmin</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/george-whittaker" lang="" about="/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="">George Whittaker</a></span> - July 25, 2024 </div> </footer> <div class="content-body"> Introduction Linux system administration encompasses managing the software and hardware of Linux systems, which can be complex, especially for those new to Linux or managing multiple systems. Fortunately, Webmin, a web-based interface, simplifies many of the routine tasks involved in maintaining a healthy Linux system. This article explores how Webmin can be an invaluable tool for beginners and seasoned system administrators alike by providing a straightforward approach to managing Linux configurations through a simple browser interface. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340734" role="article" about="/content/experts-attempt-explain-devops-and-almost-succeed" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/experts-attempt-explain-devops-and-almost-succeed" rel="bookmark"> <span>Experts Attempt to Explain DevOps--and Almost Succeed</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/bryan-lunduke" lang="" about="/users/bryan-lunduke" typeof="schema:Person" property="schema:name" datatype="">Bryan Lunduke</a></span> - August 7, 2019 </div> </footer> <div class="content-body"> What is DevOps? How does it relate to other ideas and methodologies within software development? Linux Journal Deputy Editor and longtime software developer, Bryan Lunduke isn&#039;t entirely sure, so he asks some experts to help him better understand the DevOps phenomenon. The word DevOps confuses me. I&#039;m not even sure confuses me quite does justice to the pain I experience—right in the center of my brain—every time the word is uttered. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340729" role="article" about="/content/my-favorite-infrastructure" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/my-favorite-infrastructure" rel="bookmark"> <span>My Favorite Infrastructure</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - August 7, 2019 </div> </footer> <div class="content-body"> Take a tour through the best infrastructure I ever built with stops in architecture, disaster recovery, configuration management, orchestration and security. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340199" role="article" about="/content/bare-bones-monitoring-monit-and-rrdtool" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/bare-bones-monitoring-monit-and-rrdtool" rel="bookmark"> <span>Bare-Bones Monitoring with Monit and RRDtool</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/andy-carlson" lang="" about="/users/andy-carlson" typeof="schema:Person" property="schema:name" datatype="">Andy Carlson</a></span> - March 21, 2019 </div> </footer> <div class="content-body"> How to provide robust monitoring to low-end systems. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340436" role="article" about="/content/redefining-landscape-system-monitoring-interview-pulseways-founder" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/redefining-landscape-system-monitoring-interview-pulseways-founder" rel="bookmark"> <span>Redefining the Landscape of System Monitoring: an Interview with Pulseway&#039;s Founder</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/petros-koutoupis" lang="" about="/users/petros-koutoupis" typeof="schema:Person" property="schema:name" datatype="">Petros Koutoupis</a></span> - January 25, 2019 </div> </footer> <div class="content-body"> Pulseway provides a product of the same name that&#039;s built to enable IT personnel and give them the ability to monitor, manage and automate their systems and the tasks or applications that they host. And, the best part is that they can do all of these things anywhere and everywhere, from their pockets. In fact, I wrote about Pulseway once before, so check out that article for an introduction. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339811" role="article" about="/content/weekend-reading-sysadmin-101" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/weekend-reading-sysadmin-101" rel="bookmark"> <span>Weekend Reading: Sysadmin 101</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - December 8, 2018 </div> </footer> <div class="content-body"> This series covers sysadmin basics. The first article explains how to approach alerting and on-call rotations as a sysadmin. In the second article, I discuss how to automate yourself out of a job, and in the third, I explain why and how you should use tickets. The fourth article covers some of the fundamentals of patch management under Linux, and the fifth and final article describes the overall sysadmin career path and the attributes that might make you a &quot;senior sysadmin&quot; instead of a &quot;sysadmin&quot; or &quot;junior sysadmin&quot;, along with some tips on how to level up. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340226" role="article" about="/content/travel-laptop-tips-practice" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/travel-laptop-tips-practice" rel="bookmark"> <span>Travel Laptop Tips in Practice</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - November 21, 2018 </div> </footer> <div class="content-body"> It&#039;s one thing to give travel advice; it&#039;s another to follow it. In past articles, I&#039;ve written about how to prepare for a vacation or other travel when you&#039;re on call. And, I just got back from a vacation where I put some of those ideas into practice, so I thought I&#039;d write a follow-up and give some specifics on what I recommended, what I actually did and how it all worked. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340203" role="article" about="/content/schedule-one-time-commands-unix-tool" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/schedule-one-time-commands-unix-tool" rel="bookmark"> <span>Schedule One-Time Commands with the UNIX at Tool</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - November 19, 2018 </div> </footer> <div class="content-body"> Cron is nice and all, but don&#039;t forget about its cousin at. When I first started using Linux, it was like being tossed into the deep end of the UNIX pool. You were expected to use the command line heavily along with all the standard utilities and services that came with your distribution. At lot has changed since then, and nowadays, you can use a standard Linux desktop without ever having to open a terminal or use old UNIX services. Even as a sysadmin, these days, you often are a few layers of abstraction above some of these core services. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340184" role="article" about="/content/why-your-server-monitoring-still-sucks" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/why-your-server-monitoring-still-sucks" rel="bookmark"> <span>Why Your Server Monitoring (Still) Sucks</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/mike-julian" lang="" about="/users/mike-julian" typeof="schema:Person" property="schema:name" datatype="">Mike Julian</a></span> - November 1, 2018 </div> </footer> <div class="content-body"> Five observations about why your server monitoring still stinks by a monitoring specialist-turned-consultant. Early in my career, I was responsible for managing a large fleet of printers across a large campus. We&#039;re talking several hundred networked printers. It often required a 10- or 15-minute walk to get to some of those printers physically, and many were used only sporadically. I didn&#039;t always know what was happening until I arrived, so it was anyone&#039;s guess as to the problem. Simple paper jam? Driver issue? Printer currently on fire? I found out only after the long walk. Making this even more frustrating for everyone was that, thanks to the infrequent use of some of them, a printer with a problem might go unnoticed for weeks, making itself known only when someone tried to print with it. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340145" role="article" about="/content/have-plan-netplan" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/have-plan-netplan" rel="bookmark"> <span>Have a Plan for Netplan</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/shawn-powers" lang="" about="/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="">Shawn Powers</a></span> - October 16, 2018 </div> </footer> <div class="content-body"> Ubuntu changed networking. Embrace the YAML. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340171" role="article" about="/content/whats-your-systems-uptime" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/whats-your-systems-uptime" rel="bookmark"> <span>What&#039;s Your System&#039;s Uptime?</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/ricardo-fraile" lang="" about="/users/ricardo-fraile" typeof="schema:Person" property="schema:name" datatype="">Ricardo Fraile</a></span> - October 3, 2018 </div> </footer> <div class="content-body"> Keep track of your system&#039;s uptime and downtime with the tuptime tool. Finding your system&#039;s uptime is easy if the &quot;beginning&quot; means the last startup; the historical uptime command reports that information. But what happens if by &quot;beginning&quot; you mean the first startup ever of the system? Or the last 365 days? Or the last month? </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340062" role="article" about="/content/stop-killing-your-cattle" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/stop-killing-your-cattle" rel="bookmark"> <span>Stop Killing Your Cattle: Server Infrastructure Advice</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - September 11, 2018 </div> </footer> <div class="content-body"> It&#039;s great to treat your infrastructure like cattle—until it comes to troubleshooting. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340033" role="article" about="/content/foss-project-spotlight-run-remote-tasks-linux-and-windows-puppet-bolt" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/foss-project-spotlight-run-remote-tasks-linux-and-windows-puppet-bolt" rel="bookmark"> <span>FOSS Project Spotlight: Run Remote Tasks on Linux and Windows with Puppet Bolt</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/john-s-tonello" lang="" about="/users/john-s-tonello" typeof="schema:Person" property="schema:name" datatype="">John S. Tonello</a></span> - August 31, 2018 </div> </footer> <div class="content-body"> Puppet, the company that makes automation software for managing systems and delivering software, has introduced Puppet Bolt, an open-source, agentless multiplatform tool for running commands, scripts, tasks and orchestrated workflows on remote Linux and Windows systems. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1340050" role="article" about="/content/pulseway-systems-management-your-fingertips" class="story is-promoted teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/pulseway-systems-management-your-fingertips" rel="bookmark"> <span>Pulseway: Systems Management at Your Fingertips</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/petros-koutoupis" lang="" about="/users/petros-koutoupis" typeof="schema:Person" property="schema:name" datatype="">Petros Koutoupis</a></span> - July 30, 2018 </div> </footer> <div class="content-body"> In today&#039;s IT world, staying on top of anything and everything related to the most mission-critical applications or machines is increasingly important. With this need in mind, Pulseway provides a product of the same name built to give IT personnel the ability to monitor, manage and automate these very systems and the tasks or applications that they host. Managing an entire computing ecosystem (consisting of both physical and virtual machines) never should be too difficult a task, and Pulseway has proven that to be the case. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339704" role="article" about="/content/ansible-part-iv-putting-it-all-together" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/ansible-part-iv-putting-it-all-together" rel="bookmark"> <span>Ansible, Part IV: Putting It All Together</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/shawn-powers" lang="" about="/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="">Shawn Powers</a></span> - March 2, 2018 </div> </footer> <div class="content-body"> Roles are the most complicated and yet simplest aspect of Ansible to learn. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339671" role="article" about="/content/ansible-part-iii-playbooks" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/ansible-part-iii-playbooks" rel="bookmark"> <span>Ansible, Part III: Playbooks</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/shawn-powers" lang="" about="/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="">Shawn Powers</a></span> - February 19, 2018 </div> </footer> <div class="content-body"> Playbooks make Ansible even more powerful than before. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339670" role="article" about="/content/learning-it-fundamentals" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/learning-it-fundamentals" rel="bookmark"> <span>Learning IT Fundamentals</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - February 17, 2018 </div> </footer> <div class="content-body"> Where do IT fundamentals fit in our modern, cloud- and abstraction-driven engineering culture? </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339602" role="article" about="/content/ansible-making-things-happen" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/ansible-making-things-happen" rel="bookmark"> <span>Ansible: Making Things Happen</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/shawn-powers" lang="" about="/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="">Shawn Powers</a></span> - January 30, 2018 </div> </footer> <div class="content-body"> Finally, an automation framework that thinks like a sysadmin. Ansible, you&#039;re hired. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339631" role="article" about="/content/rapid-secure-patching-tools-and-methods" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/rapid-secure-patching-tools-and-methods" rel="bookmark"> <span>Rapid, Secure Patching: Tools and Methods</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/charles-fisher" lang="" about="/users/charles-fisher" typeof="schema:Person" property="schema:name" datatype="">Charles Fisher</a></span> - January 29, 2018 </div> </footer> <div class="content-body"> Generate enterprise-grade SSH keys and load them into an agent for control of all kinds of Linux hosts. Script the agent with the Parallel Distributed Shell (pdsh) to effect rapid changes over your server farm. </div> </div> </article> </div> <div class="views-row"><article data-history-node-id="1339623" role="article" about="/content/advice-buying-and-setting-laptops-when-youre-traveling-or-call" class="story is-promoted is-sticky teaser clearfix"> <div class="teaser-image"> </div> <div class="teaser-text"> <h2> <a href="/content/advice-buying-and-setting-laptops-when-youre-traveling-or-call" rel="bookmark"> <span>Advice for Buying and Setting Up Laptops When You&#039;re Traveling or On-Call</span> </a> </h2> <footer> <div class="author"> <span><a title="View user profile." href="/users/kyle-rankin" lang="" about="/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="">Kyle Rankin</a></span> - January 28, 2018 </div> </footer> <div class="content-body"> Why stress over losing that expensive personal or work laptop? Buy a cheap one for risky situations. In a previous article, I wrote about how to prepare for a vacation so you aren&#039;t disturbed by a work emergency. As part of that article, I described how to prepare your computer: </div> </div> </article> </div> </div> <nav class="pager-nav text-center" role="navigation" aria-labelledby="pagination-heading"> <h4 id="pagination-heading" class="visually-hidden">Pagination</h4> <ul class="pagination js-pager__items"> <li class="pager__item is-active active"> <a href="?page=0" title="Current page"> <span class="visually-hidden"> Current page </span>1</a> </li> <li class="pager__item"> <a href="?page=1" title="Go to page 2"> <span class="visually-hidden"> Page </span>2</a> </li> <li class="pager__item"> <a href="?page=2" title="Go to page 3"> <span class="visually-hidden"> Page </span>3</a> </li> <li class="pager__item"> <a href="?page=3" title="Go to page 4"> <span class="visually-hidden"> Page </span>4</a> </li> <li class="pager__item"> <a href="?page=4" title="Go to page 5"> <span class="visually-hidden"> Page </span>5</a> </li> <li class="pager__item"> <a href="?page=5" title="Go to page 6"> <span class="visually-hidden"> Page </span>6</a> </li> <li class="pager__item"> <a href="?page=6" title="Go to page 7"> <span class="visually-hidden"> Page </span>7</a> </li> <li class="pager__item"> <a href="?page=7" title="Go to page 8"> <span class="visually-hidden"> Page </span>8</a> </li> <li class="pager__item"> <a href="?page=8" title="Go to page 9"> <span class="visually-hidden"> Page </span>9</a> </li> <li class="pager__item pager__item--next"> <a href="?page=1" title="Go to next page" rel="next"> <span class="visually-hidden">Next page</span> <span aria-hidden="true">››</span> </a> </li> <li class="pager__item pager__item--last"> <a href="?page=8" title="Go to last page" rel="last"> <span class="visually-hidden">Last page</span> <span aria-hidden="true">Last »</span> </a> </li> </ul> </nav> <div class="feed-icons"> <a href="https://www.linuxjournal.com/taxonomy/term/21/feed" class="feed-icon"> Subscribe to SysAdmin </a> </div> </div> </div> </div> </section> </div> </div> <footer class="footer container" role="contentinfo"> <div class="region region-footer"> <section class="views-element-container block block-views block-views-blocknewsletter-promo-block-block-1 clearfix" id="block-views-block-newsletter-promo-block-block-1"> <div class="form-group"><div class="view view-newsletter-promo-block view-id-newsletter_promo_block view-display-id-block_1 js-view-dom-id-9c45aaed30e3769d5d713dabd197b28db0787dee194816b0ad6e8c3f1b52b488"> <div class="view-content"> <div class="views-row"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="newsletter-bottom"> <div class="col-md-9 col-sm-12 signup-form"> <!--<h3>Linux Journal Week in Review</h3> <p>Sign up to get all the good stuff delivered to your inbox every week.</p> <form id="subForm" class="js-cm-form" action="https://www.createsend.com/t/subscribeerror?description=" method="post" data-id="A61C50BEC994754B1D79C5819EC1255CDBC34DDF3E170B13E2BAC2D68C42BF424F853383C84F5BAE38EAB4CFA5C73907CAC074FF8192503AF80F3699F7FE5CE1"> <div class="flexform">--> <!--<label for="fieldEmail">Email</label> <br />--> <!--<input id="fieldEmail" name="cm-gjjtdh-gjjtdh" type="email" class="js-cm-email-input" placeholder="Enter your email. Get the newsletter." required /> <button class="js-cm-submit-button" type="submit">Sign Up</button> </div> <div> <input id="cm-privacy-consent" name="cm-privacy-consent" required type="checkbox" /> <label for="cm-privacy-consent">I give my consent to be emailed</label> <input id="cm-privacy-consent-hidden" name="cm-privacy-consent-hidden" type="hidden" value="true" /> </div> </form> <script type="text/javascript" src="https://js.createsend1.com/javascript/copypastesubscribeformlogic.js"></script> </div>--> <!--<div class="col-md-3 col-sm-12 subs-callout"> <img src="/sites/default/files/styles/large/public/2019-01/LJ294-Jan2019-Cover_0.jpg" width="100px" /> <h3>The Value of Open Source Journalism</h3> <p> Subscribe and support our coverage for technology's biggest thinkers – with up to 52% savings. </p> <strong><a href="https://www.linuxjournal.com/subscribe">Subscribe <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </strong> </div>--> </div> </div> </div> </div> </div> </div> </section> </div> <div class="footer-blocks col-sm-12"> <div class="col-md-6 col-sm-12 footer-left"> <div class="region region-footer-left"> <section id="block-connectwithusfooter" class="block block-block-content block-block-content5e722bd4-5e08-454b-8507-956089bfa661 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="footer-heading">Connect With Us <span class="social-media sm-a-no-underline"><a href="https://youtube.com/linuxjournalonline" alt="Linux Journal on YouTube" aria-label="YouTube"><i class="fa fa-youtube fa-2x"></i></a><a href="https://www.facebook.com/linuxjournal/" alt="Linux Journal on Facebook" aria-label="Facebook"><i class="fa fa-facebook-f fa-2x"></i><a href="https://twitter.com/linuxjournal" alt="Linux Journal on Twitter" aria-label="Twitter"><i class="fa fa-twitter fa-2x"></i></a></span></div> <p>Linux Journal, representing 25+ years of publication, is the original magazine of the global Open Source community.</p></div> </section> <section id="block-linuxjournal-block-9" class="block block-block-content block-block-content8669793b-e217-4426-a79e-eb3c21ede127 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="copyright">© 2024 Slashdot Media, LLC. All rights reserved.</div> </div> </section> <section id="block-privacyterms" class="block block-block-content block-block-contenta203b8bd-80ef-4982-bf6e-784dd7b44120 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><ul class="menu menu--footer-submenu nav" id="terms-nav"> <li><a href="https://slashdotmedia.com/privacy-statement/" rel="nofollow" target="_blank">PRIVACY POLICY</a></li> <li><a href="https://slashdotmedia.com/terms-of-use/" rel="nofollow" target="_blank">TERMS OF SERVICE</a></li> <li><a href="/sponsors">ADVERTISE</a></li> </ul></div> </section> </div> </div> <div class="col-md-4 col-sm-8 footer-middle"> <div class="region region-footer-middle"> <nav role="navigation" aria-labelledby="block-footermenucolumn2-menu" id="block-footermenucolumn2"> <h2 class="visually-hidden" id="block-footermenucolumn2-menu">Footer Menu Column 2</h2> <ul class="menu menu--footer-menu-column-2 nav"> <li class="first"> <a href="/content/masthead" data-drupal-link-system-path="node/1007727">Masthead</a> </li> <li> <a href="/author" data-drupal-link-system-path="node/1009249">Authors</a> </li> <li class="last"> <a href="/form/contact" data-drupal-link-system-path="webform/contact">Contact Us</a> </li> </ul> </nav> <nav role="navigation" aria-labelledby="block-footermenucolumn3-menu" id="block-footermenucolumn3"> <h2 class="visually-hidden" id="block-footermenucolumn3-menu">Footer Menu Column 3</h2> <ul class="menu menu--footer-menu-column-3 nav"> <li class="first"> <a href="/rss_feeds" data-drupal-link-system-path="node/1000457">RSS Feeds</a> </li> <li class="last"> <a href="/aboutus" data-drupal-link-system-path="node/1000267">About Us</a> </li> </ul> </nav> </div> </div> </div> </footer> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"taxonomy\/term\/21","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"bootstrap":{"forms_has_error_value_toggle":1,"popover_enabled":1,"popover_animation":1,"popover_auto_close":1,"popover_container":"body","popover_content":"","popover_delay":"0","popover_html":0,"popover_placement":"right","popover_selector":"","popover_title":"","popover_trigger":"click"},"linuxjournal":{"disqus":{"origin":"https:\/\/www.linuxjournal.com","prettyUrl":"\/tag\/sysadmin","fullUrl":"https:\/\/www.linuxjournal.com\/tag\/sysadmin","embedUrl":"https:\/\/linuxjournal.disqus.com\/embed.js","shortname":"linuxjournal"}},"ajaxTrustedUrl":{"\/search\/node":true},"user":{"uid":0,"permissionsHash":"a7b3a803411eb9cbd5d7d374ffb326721ee8274ab5a665df8f38311e3aad858c"}}</script> <script src="/core/assets/vendor/jquery/jquery.min.js?v=3.6.3"></script> <script src="/core/assets/vendor/underscore/underscore-min.js?v=1.13.6"></script> <script src="/core/misc/polyfills/element.matches.js?v=9.5.9"></script> <script src="/core/misc/polyfills/object.assign.js?v=9.5.9"></script> <script src="/core/assets/vendor/once/once.min.js?v=1.0.1"></script> <script src="/core/assets/vendor/jquery-once/jquery.once.min.js?v=9.5.9"></script> <script src="/core/misc/drupalSettingsLoader.js?v=9.5.9"></script> <script src="/core/misc/drupal.js?v=9.5.9"></script> <script src="/core/misc/drupal.init.js?v=9.5.9"></script> <script src="/core/assets/vendor/picturefill/picturefill.min.js?v=3.0.3"></script> <script src="/themes/contrib/bootstrap/js/drupal.bootstrap.js?smwnh4"></script> <script src="/themes/contrib/bootstrap/js/attributes.js?smwnh4"></script> <script src="/themes/contrib/bootstrap/js/theme.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/affix.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/alert.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/button.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/carousel.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/collapse.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/dropdown.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/modal.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/tooltip.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/popover.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/scrollspy.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/tab.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/transition.js?smwnh4"></script> <script src="/themes/linuxjournal/js/lj-consentmanager.js?smwnh4"></script> <script src="/modules/contrib/webform/js/webform.behaviors.js?v=9.5.9"></script> <script src="/core/misc/jquery.once.bc.js?v=9.5.9"></script> <script src="/core/misc/states.js?v=9.5.9"></script> <script src="/themes/contrib/bootstrap/js/misc/states.js?smwnh4"></script> <script src="/modules/contrib/webform/js/webform.states.js?v=9.5.9"></script> <script src="/modules/contrib/webform/modules/webform_bootstrap/js/webform_bootstrap.states.js?v=9.5.9"></script> <script src="/themes/contrib/bootstrap/js/popover.js?smwnh4"></script> <!-- START EMBED --> <noscript><img src="https://api.b2c.com/api/noscript-448i7exgpyqpr9c144q.gif"></noscript> <!-- END EMBED --> <!-- Matomo --> <script type="text/javascript"> var _paq = _paq || []; function initPiwik() { _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.linuxjournal.com/"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', '50']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); } </script> <noscript><p><img src="https://analytics.linuxjournal.com/piwik.php?idsite=50&amp;rec=1" style="border:0;" alt="" /></p></noscript> <!-- End Matomo Code --> <div class="modal-custom overlay-custom" id="ccpa-modal" style="margin-left: 0; display: none; max-width: 100%; width: 100%"> <div id="modal-content" class="modal-content"> <div class="modal-header" id="ccpa-modal-content-destination"></div> <span class="close" id="modal-close">&times;</span> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10