<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sandesh</title>
    <description>The latest articles on DEV Community by Sandesh (@sandesh_4554e90f93cfe9641).</description>
    <link>https://dev.to/sandesh_4554e90f93cfe9641</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2986088%2Fea019927-fceb-4969-9f9c-999ce9aa87d2.png</url>
      <title>DEV Community: Sandesh</title>
      <link>https://dev.to/sandesh_4554e90f93cfe9641</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandesh_4554e90f93cfe9641"/>
    <language>en</language>
    <item>
      <title># 🚀 From Commands to Confidence: My Week with Linux Scripting</title>
      <dc:creator>Sandesh</dc:creator>
      <pubDate>Thu, 03 Apr 2025 21:02:59 +0000</pubDate>
      <link>https://dev.to/sandesh_4554e90f93cfe9641/-from-commands-to-confidence-my-week-with-linux-scripting-klo</link>
      <guid>https://dev.to/sandesh_4554e90f93cfe9641/-from-commands-to-confidence-my-week-with-linux-scripting-klo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello Peeps!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s been a great week of learning — and more importantly, &lt;em&gt;using&lt;/em&gt; what I’ve learned. Like I said earlier, I’ve been feeding my brain a ton lately, and it finally feels like I’m flexing those muscles the right way. These mini projects have been a game-changer in making things concrete in my head.&lt;/p&gt;

&lt;p&gt;So, I started working on putting my so-called Linux mastery to use…&lt;br&gt;&lt;br&gt;
Let me correct myself — I &lt;em&gt;thought&lt;/em&gt; I had mastery. 😅&lt;/p&gt;

&lt;p&gt;But the moment I started building something real, I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Oof, I’ve got work to do.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And honestly, I needed that reality check. These projects are what give me the right to say,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Yeah, I know a few things about Linux.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m not a master yet — &lt;strong&gt;keyword: yet&lt;/strong&gt; — but I’ll get there. Slowly. Surely.&lt;br&gt;&lt;br&gt;
I made myself a promise, and I’m keeping it.&lt;br&gt;&lt;br&gt;
(Sorry for the motivational rant — just hyping myself up here 😄)&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠️ Project 1: Auto-Provision Me (Shell Scripting)
&lt;/h2&gt;

&lt;p&gt;I started working on a shell scripting project I call &lt;strong&gt;Auto-Provision Me&lt;/strong&gt;, where I built a Bash script to set up a DevOps-ready Linux environment from scratch — safely and repeatably.&lt;/p&gt;
&lt;h3&gt;
  
  
  🔧 Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Package Management&lt;/strong&gt; (&lt;code&gt;apt install&lt;/code&gt;, &lt;code&gt;remove&lt;/code&gt;, &lt;code&gt;purge&lt;/code&gt;, &lt;code&gt;autoremove&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;🔐 &lt;strong&gt;Firewall Setup&lt;/strong&gt; using &lt;code&gt;ufw&lt;/code&gt; with SSH-only default rules&lt;/li&gt;
&lt;li&gt;👤 &lt;strong&gt;User &amp;amp; Group Creation&lt;/strong&gt; with validation&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Restrict Tools to Groups&lt;/strong&gt; (e.g. podman → devops)&lt;/li&gt;
&lt;li&gt;🧪 &lt;strong&gt;Dry Run Mode&lt;/strong&gt; for safe testing before execution&lt;/li&gt;
&lt;li&gt;📜 &lt;strong&gt;Logging&lt;/strong&gt; with timestamps to &lt;code&gt;~/provisioner/install.log&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;DevOps Tool Installer&lt;/strong&gt; with interactive CLI menu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;Check it out:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://github.com/sandeshbnataraj/devops/tree/main/Linux/projects/auto_provision" rel="noopener noreferrer"&gt;Auto-Provision Me on GitHub&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  😵‍💫 Challenge of the Week: Users, Groups &amp;amp; The Podman Mystery
&lt;/h3&gt;

&lt;p&gt;One thing I wasn’t too comfortable with — and honestly, kind of &lt;em&gt;scared&lt;/em&gt; of — was dealing with &lt;strong&gt;users and groups&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Creating users, setting up groups, assigning permissions... it all felt like a permissions mess waiting to explode. 🧨&lt;/p&gt;

&lt;p&gt;But once I got over that wall of fear?&lt;br&gt;&lt;br&gt;
&lt;strong&gt;It wasn’t nearly as bad as I imagined.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Actually... I kinda &lt;strong&gt;enjoyed it&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Yep — &lt;em&gt;me&lt;/em&gt;, having fun playing system admin. 😎&lt;br&gt;&lt;br&gt;
It felt good to flex control and make the system obey. Like I was the boss of my own mini server universe.&lt;/p&gt;


&lt;h4&gt;
  
  
  👻 Then came the Podman Ghost Hunt…
&lt;/h4&gt;

&lt;p&gt;So I’m cruising along, feeling good. I write a clean, reusable function to install packages using &lt;code&gt;apt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;First test? Let’s try installing &lt;strong&gt;Podman&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;💥 &lt;em&gt;Boom&lt;/em&gt;. Right in my face.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;E: Package &lt;span class="s1"&gt;'podman'&lt;/span&gt; has no installation candidate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait, what!? 😳&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“What do you mean you don’t have Podman? This is Ubuntu 24.04!”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Naturally, I dove headfirst into the rabbit hole 🕳️🐇.&lt;/p&gt;

&lt;p&gt;I discovered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The package likely wasn’t present in the system’s &lt;strong&gt;default APT registry&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;I needed to &lt;strong&gt;add an external registry&lt;/strong&gt; manually&lt;/li&gt;
&lt;li&gt;Learned all about &lt;strong&gt;GPG key authentication&lt;/strong&gt; 🛡️&lt;/li&gt;
&lt;li&gt;Understood how Linux &lt;strong&gt;verifies trust&lt;/strong&gt; using signed packages&lt;/li&gt;
&lt;li&gt;Even found where &lt;strong&gt;those keys live&lt;/strong&gt; (&lt;code&gt;/etc/apt/keyrings&lt;/code&gt;) 🔑&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, I was &lt;em&gt;geeked out&lt;/em&gt;, ready to go full wizard 🧙‍♂️.&lt;br&gt;&lt;br&gt;
I told myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Let me just try one last time... &lt;code&gt;sudo apt install -y podman&lt;/code&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And guess what?&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 &lt;strong&gt;IT. JUST. WORKED.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;No fix. No registry. No GPG key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Just installed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I was like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Bro... the universe just trolled me.” 😭&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At that moment, I swear all the stars aligned.&lt;br&gt;&lt;br&gt;
Should’ve bought a lottery ticket. 😂&lt;/p&gt;

&lt;p&gt;I still don’t know what changed. Maybe the cache updated. Maybe the package gods blessed me.&lt;br&gt;&lt;br&gt;
But I don’t care — because that deep dive taught me &lt;strong&gt;a TON&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Sometimes, the bug disappears, but the &lt;strong&gt;lessons stay&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  📈 Project 2: Monitor Health
&lt;/h2&gt;

&lt;p&gt;Next up was a fun one — building a Bash-based system health monitor. This script gives me insights into how my system is doing and can even run on a schedule using cron.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧰 Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📊 &lt;strong&gt;Full System Health Checks&lt;/strong&gt; (Disk, Memory, CPU, Users, Services)&lt;/li&gt;
&lt;li&gt;🚨 &lt;strong&gt;Alerting when thresholds are breached&lt;/strong&gt; (Disk &amp;gt; 80%, Memory &amp;lt; 20%, CPU Overload)&lt;/li&gt;
&lt;li&gt;📃 &lt;strong&gt;Summary Report&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔁 &lt;strong&gt;Cron-based Daemon Mode&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧹 &lt;strong&gt;Log Management&lt;/strong&gt; with Timestamped Logging&lt;/li&gt;
&lt;li&gt;🆘 &lt;strong&gt;Built-in Help Menu&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🪵 &lt;strong&gt;Clean Logging Format&lt;/strong&gt; with &lt;code&gt;[INFO]&lt;/code&gt; and &lt;code&gt;[ERROR]&lt;/code&gt; tags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;Check it out:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://github.com/sandeshbnataraj/devops/tree/main/Linux/projects/auto_monitor" rel="noopener noreferrer"&gt;Monitor Health on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💭 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;With these two mini projects in the bag, I’m feeling so much more confident than I did last week.&lt;br&gt;&lt;br&gt;
Projects like this give me perspective — it’s one thing to learn theory, but implementing it teaches you &lt;strong&gt;10x more&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That doesn’t mean we skip the theory — without it, I wouldn’t know where to start or what to build. But this has been a solid exercise in turning theory into &lt;strong&gt;real-world execution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you’ve done similar projects (or are working on something cool), share them with me! I’d love to check them out, learn from them, and stay motivated.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What’s Next? Time to GIT Going!
&lt;/h2&gt;

&lt;p&gt;Next up, it’s time to &lt;strong&gt;GIT going&lt;/strong&gt; — literally. 😄&lt;br&gt;&lt;br&gt;
I’ve used Git before, but now I want to dive deeper into the fundamentals and advanced usage — rebasing, hooks, cherry-picking, all that fun stuff.&lt;/p&gt;

&lt;p&gt;Because let’s be honest, when you &lt;em&gt;think&lt;/em&gt; you know Git...&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Git hits back&lt;/strong&gt;. 😅&lt;/p&gt;

&lt;p&gt;But I’m here for it.&lt;/p&gt;

&lt;p&gt;Thanks for tagging along, and if you checked out the projects — &lt;strong&gt;thank you&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
If you left a ⭐ or dropped a comment — you're the real MVP.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Stay sharp. Stay curious.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
And remember — even when the package &lt;em&gt;“has no installation candidate”&lt;/em&gt;...&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;You’ve got this.&lt;/strong&gt;&lt;/p&gt;




</description>
      <category>linux</category>
      <category>devops</category>
      <category>softwareengineering</category>
      <category>git</category>
    </item>
    <item>
      <title>🔐 Linux, Locked and Loaded: A DevOps Primer Before I Git Going</title>
      <dc:creator>Sandesh</dc:creator>
      <pubDate>Sat, 29 Mar 2025 19:30:37 +0000</pubDate>
      <link>https://dev.to/sandesh_4554e90f93cfe9641/linux-locked-and-loaded-a-devops-primer-before-i-git-going-4pjj</link>
      <guid>https://dev.to/sandesh_4554e90f93cfe9641/linux-locked-and-loaded-a-devops-primer-before-i-git-going-4pjj</guid>
      <description>&lt;p&gt;👋 Hello Peeps!&lt;br&gt;
Well, what do you know—I finished the Linux course way earlier than expected!&lt;br&gt;
My goal was to wrap it up before the end of next week, but thanks to a happy little network outage at work (shoutout to IT—you’re doing your best, legends 💻🔥), I had some unexpected downtime and decided to power through.&lt;/p&gt;

&lt;p&gt;🧠 Real Talk&lt;br&gt;
To be honest, I skipped a few overly deep sections—because hey, I'm not trying to become a full-blown sysadmin.&lt;br&gt;
My focus is learning just enough Linux to troubleshoot like a boss, understand what’s going on under the hood, and be self-sufficient in a DevOps role.&lt;br&gt;
Maybe that decision will bite me in the butt later… but for now, I'm rolling with it. 😅&lt;/p&gt;

&lt;p&gt;💪 Brain Gains (and Retention Plan)&lt;br&gt;
Right now, my head is loaded with Linux knowledge, and I don’t want it to evaporate into the ether ☁️💨&lt;br&gt;
So I’m planning a mini project to practice everything I’ve learned—flex those mind-muscles and make things stick.&lt;br&gt;
I’ll keep you posted on that! 🛠️📓&lt;/p&gt;

&lt;p&gt;🚀 Not Rushing, Just Launching Right&lt;br&gt;
I’m super eager to jump into Git, pipelines, Kubernetes, cloud, Docker, and all those DevOps goodies, but I’m not rushing it.&lt;br&gt;
I want to do it right, not fast—because if I skip the basics now, I’ll be forced to loop back later, and that’s just a time-wasting headache.&lt;br&gt;
So yeah, slow and steady but with fire. 🔥🐢&lt;/p&gt;

&lt;p&gt;📚 My Linux Learning Assets&lt;br&gt;
Here are my notes and a cheat sheet I made to help me (and maybe you too!):&lt;/p&gt;

&lt;p&gt;📓 Full Linux Notes: &lt;a href="https://github.com/sandeshbnataraj/devops/tree/main/Linux/notes" rel="noopener noreferrer"&gt;Linux_basics.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 Quick Glance Cheat Sheet: &lt;a href="https://github.com/sandeshbnataraj/devops/tree/main/Linux/notes" rel="noopener noreferrer"&gt;devops_linux_skills_checklist.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧪 What’s Next?&lt;br&gt;
I’ll be doing a mini project to practice these Linux commands in real-world scenarios.&lt;br&gt;
It might not be a big show-off project, but it’s for muscle memory and confidence.&lt;br&gt;
Then it’s GIT time—my next step on the DevOps ladder. 🔧⏫&lt;/p&gt;

&lt;p&gt;🎉 Final Words&lt;br&gt;
Thanks for tagging along—it’s been a fun ride so far!&lt;br&gt;
Next up, we Git serious. 😉&lt;/p&gt;

&lt;p&gt;Stay tuned, stay sharp, and stay caffeinated! ☕💻&lt;/p&gt;

</description>
      <category>devops</category>
      <category>linux</category>
      <category>learning</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Sharpening My Linux Skills for DevOps: Commands, Concepts &amp; Notes</title>
      <dc:creator>Sandesh</dc:creator>
      <pubDate>Fri, 28 Mar 2025 14:46:13 +0000</pubDate>
      <link>https://dev.to/sandesh_4554e90f93cfe9641/sharpening-my-linux-skills-for-devops-commands-concepts-notes-5gmc</link>
      <guid>https://dev.to/sandesh_4554e90f93cfe9641/sharpening-my-linux-skills-for-devops-commands-concepts-notes-5gmc</guid>
      <description>&lt;p&gt;👋 Hello, peeps!&lt;/p&gt;

&lt;p&gt;I wanted to be thorough, do my best, and maybe even become the best source of knowledge — if not for others, at least for myself, right? It’s all about building confidence and really believing in your own skills.&lt;/p&gt;

&lt;p&gt;Even though I already had some knowledge of Linux and commands (and yes, I use a fair bit of them at work), I realized I was mostly stuck using just a few common ones. You know the drill — tailing logs, grepping for stuff, quick file edits. It’s easy to fall into a routine and never really explore the full toolbox Linux gives you.&lt;/p&gt;

&lt;p&gt;For example, I rarely touched anything related to networking, user management, or system connections — mainly because my work didn’t require it. But I felt like if I really want to grow, I should revisit the foundations and get them right. Because we all know — a solid foundation is everything when it comes to mastering any skill.&lt;/p&gt;

&lt;p&gt;🧠 Why I'm Refreshing My Linux Skills&lt;br&gt;
That brings me here: I decided to go back and refresh my Linux knowledge properly — with intention and structure. I grabbed a course on Udemy that I honestly think is incredibly well done:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udemy.com/course/complete-linux-training-course-to-get-your-dream-it-job/" rel="noopener noreferrer"&gt;📚 Complete Linux Training Course to Get Your Dream IT Job in 2025:&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every section is detailed and easy to follow — even though I’m watching it at 1.75x speed (don’t judge, it still works 😄).&lt;/p&gt;

&lt;p&gt;I actually completed most of the course earlier — I just had the disk management section left. But here's the catch: I had been taking notes directly in Udemy while watching the videos, and it became a nightmare to go back and review them. Scrolling through long, messy text blocks was painful.&lt;/p&gt;

&lt;p&gt;So I figured, why not just start over — not from the very beginning like setting up the environment, but from the core command sections — and this time take proper notes in a way I can actually use later. Also, let’s be honest — part of me was punishing myself for not doing it right the first time 😅.&lt;/p&gt;

&lt;p&gt;📝 Sharing My Notes (You're Welcome 😉)&lt;br&gt;
As I’m going through the course again, I’m now creating clean, structured notes in Markdown format — easy to read, easy to revise, and perfect for anyone else who wants to follow along.&lt;/p&gt;

&lt;p&gt;You can find my notes here (WIP):&lt;br&gt;
&lt;a href="https://github.com/sandeshbnataraj/devops/tree/main/Linux/notes" rel="noopener noreferrer"&gt;📄 Linux Notes&lt;/a&gt;&lt;br&gt;
(Note: link to GitHub)&lt;/p&gt;

&lt;p&gt;🚧 Disclaimer: These notes are not yet complete. I’m currently at Section 5 of the course and will be updating them regularly over the next few days.&lt;/p&gt;

&lt;p&gt;🛣️ What’s Next&lt;br&gt;
My goal is to finish the entire course by the end of next week and then move on to Git.&lt;/p&gt;

&lt;p&gt;Now, Git is something I already use and understand to some extent, but I want to go deeper — refresh the basics and build a stronger, more complete understanding. Because again... strong foundations matter.&lt;/p&gt;

&lt;p&gt;🔑 A Quick Tip for Anyone Studying&lt;br&gt;
When you're learning Linux — type out the commands. Practice is everything. Use man or --help if you get stuck or want to dig deeper. Even in the future, it’ll save you tons of time. 🙌&lt;/p&gt;

&lt;p&gt;📌 Thanks for reading! Follow along as I dive deeper into DevOps and share everything I learn.&lt;/p&gt;




</description>
      <category>linux</category>
      <category>devops</category>
      <category>learning</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
