200 status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.
The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.
GET / HTTP/1.1 Host: djlab.com Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html> <html dir="ltr" lang="en-US" prefix="og: https://ogp.me/ns#" > <head> <meta charset="UTF-8" /> <link rel="pingback" href="http://djlab.com/xmlrpc.php" /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- All in One SEO 4.4.3 - aioseo.com --> <title>Randy's Blog</title> <meta name="description" content="Randy's Blog" /> <meta name="robots" content="max-image-preview:large" /> <link rel="canonical" href="https://djlab.com/" /> <link rel="next" href="https://djlab.com/page/2/" /> <meta name="generator" content="All in One SEO (AIOSEO) 4.4.3" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="Randy's Blog | Ramblings of a sysadmin" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Randy's Blog" /> <meta property="og:description" content="Randy's Blog" /> <meta property="og:url" content="https://djlab.com/" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Randy's Blog" /> <meta name="twitter:description" content="Randy's Blog" /> <script type="application/ld+json" class="aioseo-schema"> {"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/djlab.com\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/djlab.com\/#listItem","position":1,"item":{"@type":"WebPage","@id":"https:\/\/djlab.com\/","name":"Home","description":"Randy's Blog","url":"https:\/\/djlab.com\/"}}]},{"@type":"CollectionPage","@id":"https:\/\/djlab.com\/#collectionpage","url":"https:\/\/djlab.com\/","name":"Randy's Blog","description":"Randy's Blog","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/djlab.com\/#website"},"breadcrumb":{"@id":"https:\/\/djlab.com\/#breadcrumblist"},"about":{"@id":"https:\/\/djlab.com\/#organization"}},{"@type":"Organization","@id":"https:\/\/djlab.com\/#organization","name":"Self","url":"https:\/\/djlab.com\/"},{"@type":"WebSite","@id":"https:\/\/djlab.com\/#website","url":"https:\/\/djlab.com\/","name":"Randy's Blog","description":"Ramblings of a sysadmin","inLanguage":"en-US","publisher":{"@id":"https:\/\/djlab.com\/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/djlab.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}}]} </script> <!-- All in One SEO --> <link rel="alternate" type="application/rss+xml" title="Randy's Blog » Feed" href="https://djlab.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Randy's Blog » Comments Feed" href="https://djlab.com/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/djlab.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='reset-css' href='https://djlab.com/wp-content/themes/wp-framework/library/css/reset.css' type='text/css' media='all' /> <link rel='stylesheet' id='default-css' href='https://djlab.com/wp-content/themes/wp-framework/library/css/default.css' type='text/css' media='all' /> <link rel='stylesheet' id='master-css' href='https://djlab.com/wp-content/themes/wp-framework/library/css/master.css' type='text/css' media='all' /> <link rel='stylesheet' id='grid-css' href='https://djlab.com/wp-content/themes/wp-framework/library/css/grid.css' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='http://djlab.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7.2' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <script type="text/javascript" src="https://djlab.com/wp-content/themes/wp-framework/library/js/html5shiv.js" id="html5shiv-js"></script> <script type="text/javascript" src="http://djlab.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="http://djlab.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://djlab.com/wp-content/themes/wp-framework/library/js/superfish.js" id="superfish-js"></script> <link rel="https://api.w.org/" href="https://djlab.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://djlab.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <!-- Protected by WP-SpamFree :: JS BEGIN --> <script type="text/javascript" src="https://djlab.com/wp-content/plugins/wp-spamfree/js/wpsfv2-js.php"></script> <!-- Protected by WP-SpamFree :: JS END --> </head> <body class="home blog wpf en_US y2025 m05 d20 h00 tuesday theme-wp-framework template-wp-framework_index-php"> <div id="container" class="wrap"> <header id="header" role="banner"> <div id="branding" class="wrap"> <div id="site-title-wrap" class="column-7"> <h1 id="site-title"> <span> <a href="https://djlab.com/" title="Randy's Blog" rel="home">Randy's Blog</a> </span> </h1><!-- #site-title --> </div><!--#site-title-wrap--> <div id="site-description" class="before-1 column-4 last"> Ramblings of a sysadmin </div><!--#site-description--> </div><!--#branding--> <div id="custom-header"> </div><!--#custom-header--> <div id="site-navigation" role="navigation"> <nav class="nav-menu nav-menu-fat wrap"><ul> <li class="current_page_item"><a href="https://djlab.com/">Home</a></li></ul></nav> </div><!--#site-navigation--> </header><!--header--> <div id="main" role="main"> <div class="wrap"> <div id="content" class="column-7"> <div class="hfeed"> <article id="post-1552" class="post-1552 post type-post status-publish format-standard hentry category-uncategorized postnum-1 post-1 odd author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2025/02/managing-security-profiles-in-almalinux/" title="Permalink to Managing Security Profiles in AlmaLinux" rel="bookmark">Managing Security Profiles in AlmaLinux</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2025/02/managing-security-profiles-in-almalinux/" rel="bookmark"><time class="entry-date" datetime="2025-02-20T14:02:30-04:00" pubdate>February 20, 2025</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>To manage security profile, in this case, to accept legacy SSH keys:</p> <pre><code>echo "PubkeyAcceptedKeyTypes=+ssh-dss" >> /etc/ssh/sshd_config update-crypto-policies --set legacy</code></pre> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><a href="https://djlab.com/2025/02/managing-security-profiles-in-almalinux/#respond">Leave a comment</a></span> </footer><!-- .entry-meta --> </article><!-- #post-1552 --> <article id="post-1549" class="post-1549 post type-post status-publish format-standard hentry category-uncategorized postnum-2 post-2 even alt author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2024/01/monitoring-files-read-written-on-linux/" title="Permalink to Monitoring files read/written on Linux" rel="bookmark">Monitoring files read/written on Linux</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2024/01/monitoring-files-read-written-on-linux/" rel="bookmark"><time class="entry-date" datetime="2024-01-17T02:33:01-04:00" pubdate>January 17, 2024</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>apt install fatrace</p> <p>./fatrace</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on Monitoring files read/written on Linux</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1549 --> <article id="post-1489" class="post-1489 post type-post status-publish format-standard hentry category-uncategorized postnum-3 post-3 odd author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2023/01/california-audio-labs-cl2500-mca-repair-saga/" title="Permalink to California Audio Labs CL2500-MCA Repair Saga" rel="bookmark">California Audio Labs CL2500-MCA Repair Saga</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2023/01/california-audio-labs-cl2500-mca-repair-saga/" rel="bookmark"><time class="entry-date" datetime="2023-01-24T18:09:02-04:00" pubdate>January 24, 2023</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>The CL2500-MCA 5-channel amplifier is one of the most powerful home audio amplifiers. For sale between 1999 and 2001, it had a short retail life and few were sold until California Audio Labs ceased operations. There are no parts, schematics or service manuals.</p> <p><div id="attachment_1504" style="width: 179px" class="wp-caption alignleft"><a href="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002.jpeg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-1504" class="wp-image-1504 size-medium" src="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002-169x300.jpeg" alt="CL2500 MCA Power Supplies" width="169" height="300" srcset="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002-169x300.jpeg 169w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002-576x1024.jpeg 576w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002-768x1365.jpeg 768w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002-864x1536.jpeg 864w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135644_002.jpeg 1152w" sizes="(max-width: 169px) 100vw, 169px" /></a><p id="caption-attachment-1504" class="wp-caption-text">CL2500 MCA Power Supplies</p></div></p> <p>Under the hood, you’ll find a low voltage / standby power supply and three 1500 watt ZVS (zero voltage switching) resonant phase shift switching power supplies providing 4500 watts of continuous power. This is a state of the art power supply design (most patents are from the 90’s) and I’ve never seen them in consumer audio gear. So far, I’ve only seen these types of power supplies recently in modern solar MPPT and EV charging systems. They are extremely efficient at very high power levels and are the “black magic” of state-of-the-art power supply design. To top things off, each amplifer channel uses 20 matched power transistors in their output stages. That’s 100 matched output stage transistors in total.</p> <p>The unit on my bench has a few problems. Sometimes it won’t power on at all (unable to build rail voltage), while other times it powers on and works fine for hours or days, until rail voltage becomes unstable and starts “motorboating”. The unit does not go into protection and hammers on the speakers until power is removed. This is a loud, startling noise. It usually happens on channels 1 and 2 (power supply #1), but occasionally it will spread to other channels if power is left on.</p> <p><div id="attachment_1502" style="width: 179px" class="wp-caption alignright"><a href="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002.jpeg"><img decoding="async" aria-describedby="caption-attachment-1502" class="wp-image-1502 size-medium" src="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002-169x300.jpeg" alt="CL2500 MCA New Soft Start Resistors" width="169" height="300" srcset="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002-169x300.jpeg 169w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002-576x1024.jpeg 576w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002-768x1365.jpeg 768w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002-864x1536.jpeg 864w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-135307_002.jpeg 1152w" sizes="(max-width: 169px) 100vw, 169px" /></a><p id="caption-attachment-1502" class="wp-caption-text">CL2500 MCA New Soft Start Resistors</p></div></p> <p style="text-align: left;">My first task on the bench was to investigate the soft-start system, because it was blowing my 15A breaker every time I plugged the unit in. Moving it to a 20A circuit stopped the breaker popping, but a 50 watt 4-ohm soft-start resistor was open. I replaced it with 4x 20 ohm 20 watt resistors in parallel which resolved this problem.</p> <p>Next, I investigated the power supplies because when the “motorboating” is happening, rail voltages swing from 30-100 volts a couple times per second. Given the track record of 90’s electrolytics, I ordered new Nichicon electrolytic capacitors – 12x 2200uF, 200v bulk caps and various other smaller values. I re-capped and reflowed solder on all three supplies (8x PCB’s for the power supplies). This was a huge undertaking with a hundred+ screws and everything sandwiched and hard wired together. Testing on the bench seemed fine with channels 1/2 driven to full power for several hours, so I reassembled and returned it to service.</p> <p><div id="attachment_1500" style="width: 235px" class="wp-caption alignleft"><a href="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002.jpeg"><img decoding="async" aria-describedby="caption-attachment-1500" class="wp-image-1500 size-medium" src="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002-225x300.jpeg" alt="CL2500 MCA Incorrect Voltage to Switching Supply Control Circuits" width="225" height="300" srcset="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002-225x300.jpeg 225w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002-768x1024.jpeg 768w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002-1152x1536.jpeg 1152w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_002.jpeg 1200w" sizes="(max-width: 225px) 100vw, 225px" /></a><p id="caption-attachment-1500" class="wp-caption-text">Incorrect Voltage to Control Circuits</p></div></p> <p>A week later it is back to the bench with the same issue. It’s unlikely that all three power supplies are failing in the exact same way, so I looked for a common point. I probed two 12 volt rails on each switching supply and measured only 10.6 volts. I got the exact same reading for all three units (6 rails total).</p> <p>According to the switching control IC (UC3879N) datasheet, AT LEAST 12 volts are required for operation. Anything lower should cause a shutdown. The voltage was slowly dropping the longer it was powered on. Once it drops closer to 10 volts, the rail voltages become unstable as the supplies cycle on and off rapidly.</p> <p><div id="attachment_1501" style="width: 235px" class="wp-caption alignright"><a href="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007.jpeg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1501" class="wp-image-1501 size-medium" src="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007-225x300.jpeg" alt="CL2500 MCA Manufacturing Error" width="225" height="300" srcset="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007-225x300.jpeg 225w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007-768x1024.jpeg 768w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007-1152x1536.jpeg 1152w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-134935_007.jpeg 1200w" sizes="auto, (max-width: 225px) 100vw, 225px" /></a><p id="caption-attachment-1501" class="wp-caption-text">Manufacturing Error</p></div></p> <p>This takes me to the low level power supply board, which provides 12 volts to the switching supplies. On visual inspection, I found an obvious defect – power transistor (Q3) wedged under a transformer, with exposed tab (collector) possibly shorting out on a transformer tap. This transistor is responsible for providing 12 volts to the switching supplies. It is jammed in such a way that it could not be removed without cutting the transistor legs or desoldering the transformer. I chose to cut the transistor off, desolder the legs and install an identical unit (TIP32C) in the correct orientation.</p> <p><a href="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-174559_002.jpeg"><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1541" src="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-174559_002-225x300.jpeg" alt="" width="225" height="300" srcset="https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-174559_002-225x300.jpeg 225w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-174559_002-768x1024.jpeg 768w, https://djlab.com/wp-content/uploads/2023/01/signal-2023-01-24-174559_002.jpeg 1080w" sizes="auto, (max-width: 225px) 100vw, 225px" /></a>The unit is back in proper working order. I am considering adding active cooling fans at some point, because this passively cooled amplifier runs very hot with an idle draw of almost 500 watts. I also plan to interface with the RS232 control port using an Arduino to turn the amplifier on and off remotely.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on California Audio Labs CL2500-MCA Repair Saga</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1489 --> <article id="post-1485" class="post-1485 post type-post status-publish format-standard hentry category-uncategorized postnum-4 post-4 even alt author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2023/01/htaccess-force-ssl-autossl-safe/" title="Permalink to .htaccess force SSL (AutoSSL safe)" rel="bookmark">.htaccess force SSL (AutoSSL safe)</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2023/01/htaccess-force-ssl-autossl-safe/" rel="bookmark"><time class="entry-date" datetime="2023-01-12T10:26:42-04:00" pubdate>January 12, 2023</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>The following is safe to use on Cpanel/WHM with AutoSSL enabled.</p> <pre><code>RewriteEngine On RewriteCond %{HTTPS} !on RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</code></pre> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on .htaccess force SSL (AutoSSL safe)</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1485 --> <article id="post-1445" class="post-1445 post type-post status-publish format-standard hentry category-uncategorized postnum-5 post-5 odd author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2021/07/junos-mx-cheat-sheet/" title="Permalink to JunOS (MX) Cheat Sheet" rel="bookmark">JunOS (MX) Cheat Sheet</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2021/07/junos-mx-cheat-sheet/" rel="bookmark"><time class="entry-date" datetime="2021-07-28T16:25:15-04:00" pubdate>July 28, 2021</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <h2>BGP Commands</h2> <p>BGP Summary (IPv4 and IPv6):</p> <pre>show bgp summary</pre> <p>BGP Received routes (shows routes BEFORE filtering? Always check local routing table):</p> <pre>show route receive-protocol bgp <neighbor></pre> <p>BGP Sent routes:<code></code></p> <pre>show route advertising-protocol bgp <neighbor></pre> <p>Shut/unshut a BGP peer</p> <pre><set|delete> protocols bgp <group> neighbor <neighbor> shutdown</pre> <p>Reload inbound routes</p> <pre>clear bgp neighbor soft-inbound <neighbor|all></pre> <p>Reload outbound routes</p> <pre>clear bgp neighbor soft <neighbor|all></pre> <h2>Troubleshooting</h2> <p>Test a policy against the current routing table</p> <pre>test policy <policy> 0.0.0.0/0</pre> <p>Show firewall log</p> <pre>show log firewall [detail]</pre> <p>Show CPU and memory utilization</p> <pre>show system processes extensive<br />show chassis routing-engine</pre> <p>MX equivilant for IOS “show ip arp <ip|mac>”</p> <pre>show arp no-resolve | match <ip|mac></pre> <p>Show interfaces “brief”</p> <pre>show interfaces terse</pre> <p>Check interface packet rates</p> <pre>show interfaces <interface> | match rate</pre> <p>Traffic flow overview</p> <pre>monitor interface traffic</pre> <h2>Configuration Tips</h2> <p>Automatic rollback in case you blow everything up. 10 minute default. Issue another commit or rollback to stop the timer.</p> <pre>commit confirmed [minutes]</pre> <p>Quickly find those commands you ran before</p> <pre>show cli history | grep <pattern></pre> <p>Move policy statement term (in edit mode just before term)</p> <pre>insert term <TermX> before term <TermY></pre> <p>Check candidate config</p> <pre>commit check</pre> <p>Get rid of uncommitted changes</p> <pre>rollback</pre> <p>Commit [and exit config mode]</p> <pre>commit [and-quit]</pre> <p>Clear current command line</p> <pre>Ctrl-x or Ctrl-u</pre> <p>Detailed command reference</p> <pre>help <reference|apropos> [<command>]</pre> <p>Display config in set format</p> <pre>show configuration [section] | display set</pre> <p>Grep configuration</p> <pre>show configuration | <grep|match|find> "<regex>"</pre> <p>Load entire section of config</p> <pre>load merge terminal</pre> <p>Move around configuration levels</p> <pre><up|top></pre> <p>Compare candidate config to running config</p> <pre>show | compare</pre> <p>Run non-configuration command in config mode</p> <pre>run <command></pre> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on JunOS (MX) Cheat Sheet</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1445 --> <article id="post-1435" class="post-1435 post type-post status-publish format-standard hentry category-uncategorized postnum-6 post-6 even alt author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2019/04/starting-a-temporary-mysql-instance-for-table-db-recovery/" title="Permalink to Starting a temporary MySQL instance for table/DB recovery" rel="bookmark">Starting a temporary MySQL instance for table/DB recovery</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2019/04/starting-a-temporary-mysql-instance-for-table-db-recovery/" rel="bookmark"><time class="entry-date" datetime="2019-04-02T20:57:25-04:00" pubdate>April 2, 2019</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>In this example we assume a restored backup of mysql’s datadir exists at /mnt/restore/mysql.</p> <pre><code>mysqld --port=3307 --socket=/mnt/restore/mysql/tmp.sock --datadir=/mnt/restore/mysql --pid-file=/mnt/restore/mysql/tmp.pid --user=mysql</code></pre> <p>If the backups are ‘dirty’ and innoDB corruption won’t let it start, you can try –innodb-force-recovery=N if needed (start with N = 1 and go up to 4 as neccesary).</p> <p>If the instance was part of a cluster, you may need to delete galera.cache and dat files.</p> <p>Once the backup instance is started and running, you can cherry-pick DB’s or tables as needed by using –port=3307 in mysql or mysqldump commands.</p> <p>If you’re only interested in a single DB, you can save time by skipping unneeded DB’s during the filesystem restore. The following would be a minimal datadir structure for accessing only the “magento” DB:</p> <pre><code>ibdata1 ib_logfile0 ib_logfile1 magento mysql</code></pre> <p>Mysqld will complain about the missing/unwanted DB data folders, but it should still start. It may also start without the ib_logfile0 and ib_logfile1 but could cause issues if the backup is dirty.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on Starting a temporary MySQL instance for table/DB recovery</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1435 --> <article id="post-1425" class="post-1425 post type-post status-publish format-standard hentry category-linux-administration category-technical category-uncategorized tag-recovery tag-xapi tag-xenserver postnum-7 post-7 odd author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2018/02/xenserver-recovery-xapi-wont-start/" title="Permalink to XenServer recovery – XAPI won’t start" rel="bookmark">XenServer recovery – XAPI won’t start</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2018/02/xenserver-recovery-xapi-wont-start/" rel="bookmark"><time class="entry-date" datetime="2018-02-13T01:28:52-04:00" pubdate>February 13, 2018</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>If running XenServer on a RAID array with writeback (controller cache) enabled and no battery backup, don’t lose power. If you do, you will discover the state.db is corrupt and XAPI fails to start. Everything is down, Dom0 lost it’s network config, you’re screwed. Maybe. This tutorial assumes you’ve got a metadata backup, all your VDI’s on LVM local storage, and the server is not part of a pool. If you meet this criteria, you can be back up in just a few minutes.</p> <p>First, remove the corrupt state.db and restart XAPI:</p> <pre><code>[root@xen ~]# mv /var/xapi/state.db /var/xapi/state.db.bad [root@xen ~]# xe-toolstack-restart</code></pre> <p>Reboot the server again for safe measure, then make sure you can see the XE Console. Reconfigure the network as needed.</p> <p>Look for your orphaned SR and obtain it’s UUID (the UUID is after ‘VG_Xenstorage-‘)</p> <pre><code>[root@xen ~]# pvdisplay --- Physical volume --- PV Name /dev/sda3 <--- Take note of this for later VG Name VG_XenStorage-768e6b7c-e466-1ef8-eee1-8a7e0b2bdd09 <--- Use this UUID PV Size 3.63 TB / not usable 9.14 MB Allocatable yes PE Size (KByte) 4096 Total PE 951549 Free PE 337665 Allocated PE 613884 PV UUID QZ2vnb-1rDi-sFKD-6ofg-czgs-BYjn-u6dO6x</code></pre> <p>Using the UUID in the VG Name above, reintroduce your storage:</p> <pre><code>[root@xen ~]# xe sr-introduce uuid=768e6b7c-e466-1ef8-eee1-8a7e0b2bdd09 type=lvm name-label="Primary Storage" content-type=user 768e6b7c-e466-1ef8-eee1-8a7e0b2bdd09</code></pre> <p>Take note of the sr-uuid result of the previous command, you need to plug it in next. Now look for the disk ID so we can create the VBD. Pro-tip – press TAB after host-uuid= and it’ll auto complete.</p> <pre><code>[root@xen ~]# ls -l /dev/disk/by-id total 0 lrwxrwxrwx 1 root root 9 Feb 12 22:36 scsi-3600605b008f8a2501b80cee707491e0f -> ../../sda lrwxrwxrwx 1 root root 10 Feb 12 22:36 scsi-3600605b008f8a2501b80cee707491e0f-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Feb 12 22:36 scsi-3600605b008f8a2501b80cee707491e0f-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Feb 12 22:36 scsi-3600605b008f8a2501b80cee707491e0f-part3 -> ../../sda3 <---- This one! [root@xen ~]# xe pbd-create host-uuid=c7b099d9-1d50-402f-ae3b-1a52ca811a8f sr-uuid=768e6b7c-e466-1ef8-eee1-8a7e0b2bdd09 device-config:device=/dev/disk/by-id/scsi-3600605b008f8a2501b80cee707491e0f-part3 9d657c71-7e85-ace8-719c-1d20890fce59</code></pre> <p>Take note of the new PBD UUID and plug in the new PBD:</p> <pre><code>[root@xen ~]# xe pbd-plug uuid=9d657c71-7e85-ace8-719c-1d20890fce59</code></pre> <p>Now go into XE Console, search for and restore the metadata backup. You have automatic metadata backups enabled, right?</p> <p>NOTE: If you are running tagged VLAN’s, before starting any VMs use XenCenter to straighten out the VLAN config on the host network before starting any VM’s. You will need to edit each one and assign to the correct interface. </p> <p>Good luck.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/technical/linux-administration/">Linux</a><span class="meta-sep-between">, </span><a href="https://djlab.com/category/technical/">Technical</a><span class="meta-sep-between_last_two">, and </span><a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> <span class="post_tag-links">Tags: <a href="https://djlab.com/tag/recovery/">recovery</a><span class="meta-sep-between">, </span><a href="https://djlab.com/tag/xapi/">xapi</a><span class="meta-sep-between_last_two">, and </span><a href="https://djlab.com/tag/xenserver/">xenserver</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on XenServer recovery – XAPI won’t start</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1425 --> <article id="post-1411" class="post-1411 post type-post status-publish format-standard hentry category-code-snippets category-technical postnum-8 post-8 even alt author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2017/09/magento2-upgrade-using-composer/" title="Permalink to Magento2 – Upgrade using Composer" rel="bookmark">Magento2 – Upgrade using Composer</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2017/09/magento2-upgrade-using-composer/" rel="bookmark"><time class="entry-date" datetime="2017-09-06T14:11:22-04:00" pubdate>September 6, 2017</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>This is the preferred, Composer method for upgrading Magento 2.X.X between minor versions. Replace X.X with the minor version numbers of the target version. The last line is optional, use it only if you’re in the middle of a migration and need to continue to be able to sync data with a 1.x site. If composer fails, this usually means you manually installed magento via GitHub or a tarball. You should probably go back and reinstall magento via Composer to avoid a world of hurt down the road.</p> <pre><code>php bin/magento maintenance:enable composer require magento/product-community-edition 2.X.X --no-update composer update rm -rf var/di var/generation php bin/magento cache:clean php bin/magento cache:flush php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento indexer:reindex php bin/magento maintenance:disable composer require magento/data-migration-tool:2.X.X</code></pre> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/technical/code-snippets/">Code</a><span class="meta-sep-between_only_two"> and </span><a href="https://djlab.com/category/technical/">Technical</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on Magento2 – Upgrade using Composer</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1411 --> <article id="post-1407" class="post-1407 post type-post status-publish format-standard hentry category-uncategorized postnum-9 post-9 odd author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2017/07/windows-vista-through-windows-10-boot-repair/" title="Permalink to Windows Vista through Windows 10 Boot Repair" rel="bookmark">Windows Vista through Windows 10 Boot Repair</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2017/07/windows-vista-through-windows-10-boot-repair/" rel="bookmark"><time class="entry-date" datetime="2017-07-01T22:19:58-04:00" pubdate>July 1, 2017</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>After cloning a larger HDD to a smaller SSD, you will most likely face a blinking cursor or other boot issues. The following steps should get you back on track from a rescue command prompt:</p> <pre><code>bootrec.exe /fixmbr bootsect.exe /nt60 all /force bootrec.exe /rebuildbcd</code></pre> <p>If you are getting integrity check errors on winload.exe, you can try this:</p> <pre><code>bcdedit.exe /set {bootmgr} nointegritychecks ON bcdedit.exe /set {default} nointegritychecks ON </code></pre> <p>If you are having registry issues (complaining that it’s corrupt or missing), you can try the following (assuming your system drive is C):</p> <pre><code>bcdedit.exe /set {bootmgr} device partition=C: bcdedit.exe /set {default} device partition=C:</code></pre> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/uncategorized/">Uncategorized</a>.</span> </span></span> <span class="comments-link"><span>Comments Off<span class="screen-reader-text"> on Windows Vista through Windows 10 Boot Repair</span></span></span> </footer><!-- .entry-meta --> </article><!-- #post-1407 --> <article id="post-1359" class="post-1359 post type-post status-publish format-standard hentry category-code-snippets category-linux-administration category-networking category-technical postnum-10 post-10 even alt author-admin category tag post_format"> <header class="entry-header"> <h2 class="entry-title"><a href="https://djlab.com/2016/10/gl-mt300a-tricks-wifi-client-bridge/" title="Permalink to GL-MT300A tricks – WIFI Client Bridge" rel="bookmark">GL-MT300A tricks – WIFI Client Bridge</a></h2> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://djlab.com/2016/10/gl-mt300a-tricks-wifi-client-bridge/" rel="bookmark"><time class="entry-date" datetime="2016-10-26T11:25:27-04:00" pubdate>October 26, 2016</time></a> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://djlab.com/author/admin/" title="View all posts by Randy">Randy</a></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>In a search to replace <a href="https://djlab.com/2012/05/portable-wifi-kvm-over-ip-with-serial-console-and-network-bridge/">several NetGear WNCE2001 devices</a> which had over time, proven themselves to be so unreliable they would literally kill entire wireless AND wired networks by <a href="https://community.netgear.com/t5/WiFi-Adapters/WNCE2001-Hijacking-Network-DHCP/td-p/455115">randomly hijacking DHCP</a>. I tried many devices — some either couldn’t bridge at all, others ‘worked’ but had such terrible range or connection quality they were practically useless, others were simply too large, the list goes on.</p> <p>Almost ready to give up on the project, I discovered the GL-MT300A – a tiny Linux / OpenWRT powered cube for around $35. The list of <a href="https://www.gl-inet.com/mt300a/#1442566013976-f19448f7-2698">built-in features</a> is impressive. But I need it for only one thing – a small, USB powered wifi client-mode bridge.</p> <p><a href="https://djlab.com/wp-content/uploads/2016/10/3154KU5UvqL.jpg"><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1360" src="https://djlab.com/wp-content/uploads/2016/10/3154KU5UvqL-300x300.jpg" alt="3154ku5uvql" width="300" height="300" srcset="https://djlab.com/wp-content/uploads/2016/10/3154KU5UvqL-300x300.jpg 300w, https://djlab.com/wp-content/uploads/2016/10/3154KU5UvqL-150x150.jpg 150w, https://djlab.com/wp-content/uploads/2016/10/3154KU5UvqL.jpg 500w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>I had high hopes – given the fact it ran OpenWRT along with the LUCI web interface – that I’d be able to do practically whatever I want through a nice GUI.</p> <p>Unfortunately I was unable to create a working bridged repeater setup due to a limitation in this particular (MediaTek) hardware. Apparently, only Broadcom hardware can natively bridge between wired and wireless networks.</p> <p>With some google-fu, I discovered an open-source ‘software fix’ for this hardware limitation called ‘relayd’. It’s available through the built-in package manager and can be installed with a few clicks.</p> <p>Here are the resulting specifications:</p> <ul> <li>WIFI bridged repeater to the physical WAN port (my only ‘must have’)</li> <li>WIFI routed repeater to physical LAN port and WIFI hotspot (NAT, administration). You could also put the LAN/hotspot in bridged mode but it requires several more steps and changes that I do not cover it in this tutorial.</li> <li>Manage WIFI networks list and hotspot settings through the ‘basic’ (non-LUCI) GUI.</li> </ul> <p>I attribute the following steps to more detailed information gathered <a href="https://wiki.openwrt.org/doc/recipes/relayclient#step_1create_an_interface_for_the_wireless_station">here</a> and <a href="https://forum.openwrt.org/viewtopic.php?id=39077">here,</a> adapted to the firmware and GUI on this particular hardware:</p> <ol> <li>Connect laptop or PC to the LAN port, and perform a factory reset (hold reset button for at least 10 seconds)</li> <li>Log into 192.168.8.1 with a browser and do the initial setup.</li> <li>Standard GUI -> In WAN setup – Set to ‘repeater’ mode and join a network. Wait at least a minute for the connection to come fully online before the next step.</li> <li>Standard GUI -> Make sure you are on the latest firmware (v2.22 as of this writing). Do another factory reset after flashing it.</li> <li>Standard GUI -> Go into ‘app repo’ (wait for the packages to populate), seach for “relayd” and install <strong>both</strong> packages which appear. The GUI will show ‘error status 255’ each time but don’t worry, it worked.</li> <li>Advanced GUI -> Network -> Interfaces – Delete WAN6 (this interface is unneccesary/redundant after we repurpose the WAN port).</li> <li>Advanced GUI -> Network -> Interfaces – Edit WAN and change protocol to ‘Static’ and set the IP address to an IP on a random unused subnet – I used 192.168.168.1 / 255.255.255.0. Also (VERY important) – go to physical settings and create a bridge between VLAN interface eth0.2 (WAN) and the Wireless Network Client.</li> <li>Advanced GUI -> Network -> Interfaces – Create an interface called ‘stabridge’ with type set to ‘Relay Bridge’. On the next page, set the IP address to the IP you used in the previous step (192.168.168.1 in this case), and select the WAN and WWAN interfaces for relaying.</li> <li>Advanced GUI -> System -> Startup -> Disable and stop ‘firewall’ and ‘firewall_gl’ services</li> <li>Advanced GUI -> System -> Startup -> Enable and ‘restart’ relayd</li> </ol> <p>At this point you can plug into the WAN port and receive a DHCP IP from your primary router, as we expect in ‘bridged repeater’ mode. Relayd handles the broadcast/DHCP traffic exchange between your wireless network and the WAN port. If you plug into the LAN port or connect to the WIFI hotspot (routed repeater), you’ll receive an IP in the 192.168.8.x range from the GL-MT300A’s built-in DHCP server and your traffic will be routed using NAT.</p> <p>I’ve found using the LAN port (or WIFI hotspot) is an easy way access the GUI to change WIFI networks or other settings since the management IP will always be 192.168.8.1. <em>NOTE: You can access the GUI on the upstream network or WAN port by going to the WWAN’s IP address in your browser. However keep in mind the WWAN IP is assigned by DHCP, so you should consider using a static DHCP reservation upstream.<br /> </em></p> <p>To change the WIFI network just repeat step 3. I’ve discovered that the device will remember all network connections and automatically connect to to the best available, and you can edit the list in the basic GUI as well.</p> <p>To manage the hotspot, go into the standard GUI and toggle the ‘switch’ to enable/disable or click on the WIFI icon to change the settings. <em>NOTE: Disabling the hotspot causes latency and packet loss due to a bug in the custom firmware, which constantly tries to ‘bring up’ the disabled interface. </em> <em>Killing off ‘gl_health’ fixes the latency and syslog errors, however,</em> the <em>wifi client will no longer auto-connect which basically renders the device useless.</em><strong><em><br /> </em></strong></p> <p>One other thing I’ve noticed is the device regularly ‘phones home’ to gl-inet.com and several other sites for firmware checks and dynamic DNS service. There is no way to disable this in either GUI nor in any configuration files. To stop the unneccesary requests, you can chmod ‘000’ the following files using SSH to prevent their execution:</p> <pre>root@GL-MT300A:~# chmod 000 /usr/lib/ddns/glddnsupdater.sh root@GL-MT300A:~# chmod 000 /usr/bin/glautoupdater</pre> <p>Lastly, it should go without saying: the firewall is <strong>completely disabled</strong> so this should ONLY be used in trusted, private network environments. NEVER allow this configuration to be openly reachable from the internet (e/g using as a travel router) without re-enabling the firewall and carefully setting up the rules. I use these only in private/trusted networks so I haven’t spent time on firewall configuration testing.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="taxonomy-lists"><span class="taxonomy-links"><span class="category-links">Categories: <a href="https://djlab.com/category/technical/code-snippets/">Code</a><span class="meta-sep-between">, </span><a href="https://djlab.com/category/technical/linux-administration/">Linux</a><span class="meta-sep-between">, </span><a href="https://djlab.com/category/technical/networking/">Networking</a><span class="meta-sep-between_last_two">, and </span><a href="https://djlab.com/category/technical/">Technical</a>.</span> </span></span> <span class="comments-link"><a href="https://djlab.com/2016/10/gl-mt300a-tricks-wifi-client-bridge/#comments">5 Comments</a></span> </footer><!-- .entry-meta --> </article><!-- #post-1359 --> <div class="pagination pagination-posts pagination-post"><span class="page-count">Page <span class="meta-current">1</span> of <span class="meta-total">16</span></span><span class="page-numbers current">1</span><a href="https://djlab.com/page/2/" class="page-numbers">2</a><a href="https://djlab.com/page/3/" class="page-numbers">3</a><a href="https://djlab.com/page/4/" class="page-numbers">4</a><span class="page-numbers dots">...</span><a href="https://djlab.com/page/15/" class="page-numbers">15</a><a href="https://djlab.com/page/16/" class="page-numbers">16</a><a href="https://djlab.com/page/2/" class="page-numbers next">»</a></div> </div><!-- .hfeed --> </div><!-- #content --> <div id="sidebar" class="before-1 column-4 last"> <aside role="complementary"> <section id="search-4" class="widget widget_search"><form role="search" method="get" id="searchform" class="searchform" action="https://djlab.com/"> <div> <label class="screen-reader-text" for="s">Search for:</label> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Search" /> </div> </form></section> <section id="recent-posts-3" class="widget widget_recent_entries"> <h3 class="widgettitle">Recent Posts</h3> <ul> <li> <a href="https://djlab.com/2025/02/managing-security-profiles-in-almalinux/">Managing Security Profiles in AlmaLinux</a> </li> <li> <a href="https://djlab.com/2024/01/monitoring-files-read-written-on-linux/">Monitoring files read/written on Linux</a> </li> <li> <a href="https://djlab.com/2023/01/california-audio-labs-cl2500-mca-repair-saga/">California Audio Labs CL2500-MCA Repair Saga</a> </li> <li> <a href="https://djlab.com/2023/01/htaccess-force-ssl-autossl-safe/">.htaccess force SSL (AutoSSL safe)</a> </li> <li> <a href="https://djlab.com/2021/07/junos-mx-cheat-sheet/">JunOS (MX) Cheat Sheet</a> </li> </ul> </section> </aside><!--aside--> </div><!--#sidebar--> </div><!--#main.wrap--> </div><!--#main--> <footer id="footer" role="contentinfo"> <div id="colophon" class="wrap"> <div id="site-info" class="column-6" role="navigation"> <nav class="nav-menu nav-menu-skinny"> <ul> <li><a href="https://djlab.com/">Randy's Blog</a></li> </ul> </nav> </div><!--#site-info--> <div id="site-credits" class="before-2 column-4 last"> <span id="site-generator"><a href="http://wordpress.org">Powered by WordPress</a> &</span> <span id="site-framework"><a href="http://devpress.com/theme/wp-framework/">Built on WP Framework</a></span> </div><!--#site-credits--> </div><!--#colophon--> </footer><!--footer--> </div><!--#container--> <script type="text/javascript" src="https://djlab.com/wp-content/themes/wp-framework/library/js/scripts.js" id="scripts-js"></script> <script type="text/javascript" src="http://djlab.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> </body> </html>