diff --git a/.config/newsboat/linuxjournal.xml b/.config/newsboat/linuxjournal.xml new file mode 100644 index 00000000..b439b210 --- /dev/null +++ b/.config/newsboat/linuxjournal.xml @@ -0,0 +1,576 @@ + + + + Linux Journal - The Original Magazine of the Linux Community + https://www.linuxjournal.com/node/feed + + en + + + Installing and Using Yarn on Ubuntu + https://www.linuxjournal.com/content/installing-and-using-yarn-ubuntu + <div data-history-node-id="1340919" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/installing-and-using-yarn-on-ubuntu.jpg" width="850" height="500" alt="Installing and Using Yarn on Ubuntu" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Yarn is a powerful JavaScript package manager that is compatible with npm and helps automate the process of installing, updating, configuring, and removing npm packages. Yarn provides speed and reliability by caching downloaded packages and parallelizing operations. In this tutorial, we will cover how to install both the latest version and classic version of Yarn on Ubuntu, along with an overview of basic Yarn commands and options.</p> + +<span class="h3-replacement">Installing the Latest Yarn Version</span> + +<p>To install and manage the latest Yarn version, we recommend using Corepack, a binary included in newer Node.js releases that serves as a point of contact between the user and Yarn. Here are the steps to install Yarn using Corepack:</p> + +<ol><li> + <p>Ensure your Node.js version is up-to-date. Check the version with the command: <code>node -v</code> Corepack requires Node.js 16.10 or later. If the output shows an older version, update Node.js.</p> + </li> + <li> + <p>Start Corepack by typing: <code>corepack enable</code> Note: If Corepack does not exist on your system, install it by typing: <code>sudo npm install -g corepack</code></p> + </li> + <li> + <p>Install the latest version of Yarn with the command below: <code>corepack prepare yarn@stable --activate</code></p> + </li> + <li> + <p>Type the following command to test the installation and check the Yarn version: <code>yarn --version</code> To update the binary to the latest version, run: <code>yarn set version stable</code></p> + </li> +</ol><span class="h3-replacement">Installing Classic Yarn Version</span> + +<p>Although the classic versions of Yarn before 2.0 are in maintenance mode, you can still install Yarn 1.x using the official Yarn repositories and npm. Here's how:</p> + +<p><strong>Option 1: Install Yarn Classic Via Repository</strong></p> + +<ol><li> + <p>Add the GPG key: <code>curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/yarn.gpg</code> The GPG key ensures that you are installing authentic software.</p> + </li> + <li> + <p>Add the Yarn repository: <code>echo "deb [signed-by=/etc/apt/trusted.gpg.d/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list</code></p> + </li> + <li> + <p>Update your local repository listings: <code>sudo apt update</code></p> + </li> + <li> + <p>Install Yarn: <code>sudo apt install yarn</code> This command installs Yarn and, if you don’t already have Node.js installed, your package manager will install it for you.</p> + </li> +</ol><p><strong>Option 2: Install Yarn Classic Using NPM</strong></p> + +<ol><li> + <p>Check if npm is installed: <code>npm --version</code> If you don’t have npm, install it by running <code>sudo apt install npm</code>.</p> + </li> + <li> + <p>To install Yarn with npm, enter: <code>sudo npm install -g yarn</code></p></li></ol></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/installing-and-using-yarn-ubuntu" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Mon, 24 Apr 2023 16:00:00 +0000 + George Whittaker + 1340919 at https://www.linuxjournal.com + + + The Art of Restarting Debian + https://www.linuxjournal.com/content/art-restarting-debian + <div data-history-node-id="1340917" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/the-art-of-restarting-debian.jpg" width="850" height="500" alt="The Art of Restarting Debian" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>As a Debian user, you may find yourself needing to restart your system from time to time. Whether it's for implementing new configurations, recovering from temporary glitches, or installing updates that require a reboot, restarting your system is an essential skill to have. While Debian provides a graphical user interface (GUI) option for rebooting, many users prefer the precision and convenience of the command line. In this article, we'll explore a comprehensive set of commands you can use to restart your Debian system from the command line.</p> + +<span class="h3-replacement">Restarting with the reboot Command</span> + +<p>The <code>reboot</code> command is a simple yet effective way to restart your Debian system. This widely-used command can be executed from the terminal and requires root privileges. To use the <code>reboot</code> command, enter the following:</p> + +<pre> +sudo reboot</pre> + +<p>Note: You will need to enter your password to proceed with the reboot.</p> + +<span class="h3-replacement">Utilizing the systemctl Command</span> + +<p>The <code>systemctl</code> command is a versatile tool that is commonly used to manage system services in Debian. In addition to its service management capabilities, <code>systemctl</code> can also be used to reboot the system. To do so, execute the following command:</p> + +<pre> +sudo systemctl reboot</pre> + +<span class="h3-replacement">The /sbin/reboot Command</span> + +<p>For situations where you want to initiate an immediate restart of your system, you can use the <code>/sbin/reboot</code> command. This command can be executed directly from the terminal and will restart your Debian system without any delay:</p> + +<pre> +/sbin/reboot</pre> + +<span class="h3-replacement">Restarting with the shutdown Command</span> + +<p>The <code>shutdown</code> command is typically used to power off the system, but with the <code>-r</code> argument, it can also be used to reboot. The <code>shutdown</code> command allows you to specify when the system should restart, giving you control over the timing of the reboot. To perform an immediate reboot, use the following command:</p> + +<pre> +shutdown -r now</pre> + +<p>You also have the option to schedule the reboot by specifying a delay in minutes. For instance, the following command will notify the user that the system will restart in the next five minutes:</p> + +<pre> +shutdown -r +5</pre> + +<span class="h3-replacement">Restarting with the init Command</span> + +<p>Lastly, the <code>init</code> command offers an alternative way to restart Debian. This command controls the behavior of the system by specifying different run levels. To initiate a reboot using the <code>init</code> command, enter the following:</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/art-restarting-debian" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Fri, 21 Apr 2023 16:00:00 +0000 + George Whittaker + 1340917 at https://www.linuxjournal.com + + + How To Master the RPM Command + https://www.linuxjournal.com/content/how-master-rpm-command + <div data-history-node-id="1340915" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/how-to-master-the-rpm-command.jpg" width="850" height="500" alt="How to Master the RPM Command" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Introduction</h2> + +<p>As a Linux user, you've likely encountered RPM (Red Hat Package Manager), a powerful package management system used by various Linux distributions including Red Hat, CentOS, Fedora, OpenSUSE, and more. RPM is known for its simplicity, ease of use, and enhanced security features. In this guide, we'll explore the RPM command and its practical use cases, from installing and upgrading packages to querying and verifying them. Let's get started!</p> + +<h2>What is RPM?</h2> + +<p>RPM, or Red Hat Package Manager, is a free and open-source package management system that allows you to install, update, remove, verify, and query RPM packages on your Linux system. RPM packages are stored in repositories, and the RPM command-line tool provides you with easy access to a vast array of software packages. Most RPM packages are binary files with pre-compiled software that are compatible with specific Linux distributions and system architectures.</p> + +<h2>The Basics: Installing, Updating, and Removing RPM Packages</h2> + +<p>To manage RPM packages, you'll need to use the <code>rpm</code> command along with specific options. Here are some fundamental commands to get you started:</p> + +<ul><li> + <p>Install: To install an RPM package, use the <code>-i</code> option followed by the package file name. For example:</p> + + <pre> +sudo rpm -ivh package.rpm</pre> + + <p>The <code>-v</code> option provides verbose output, while the <code>-h</code> option shows a progress bar.</p> + </li> + <li> + <p>Upgrade: To upgrade an existing RPM package, use the <code>-U</code> option. The package will be upgraded to a newer version if available:</p> + + <p><code>sudo rpm -Uvh package.rpm </code></p> + + <p>If the package has any missing dependencies, RPM will list them, and you'll need to install them manually.</p> + </li> + <li> + <p>Remove: To remove (erase) an installed RPM package, use the <code>-e</code> option followed by the package name:</p> + + <p><code>sudo rpm -e package_name </code></p> + + <p>To remove a package without checking its dependencies, use the <code>--nodeps</code> option.</p> + </li> +</ul><h2>Querying and Verifying RPM Packages</h2> + +<p>To retrieve information about RPM packages and verify their integrity, you can use the following commands:</p> + +<ul><li> + <p>Query: To query whether a specific package is installed, use the <code>-q</code> option:</p> + + <p><code>sudo rpm -q package_name </code></p> + + <p>To get more detailed information, use the <code>-qi</code> option. Additionally, you can use the <code>-ql</code> option to list all the files in the installed package.</p> + </li> + <li> + <p>Verify: To verify the integrity of an installed package, use the <code>-V</code> option:</p> + + <p><code>sudo rpm -V package_name </code></p> + + <p>RPM will check file ownership, permissions, and other metadata, and report any discrepancies.</p></li></ul></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/how-master-rpm-command" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Wed, 19 Apr 2023 16:00:00 +0000 + George Whittaker + 1340915 at https://www.linuxjournal.com + + + The One-Time Task Scheduling Guide To Master the “at” Command + https://www.linuxjournal.com/content/one-time-task-scheduling-guide-master-command + <div data-history-node-id="1340913" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/the-one-time-task-scheduling-guide-to-master-the-at-command.jpg" width="850" height="500" alt="The One-Time Task Scheduling Guide To Master the “at” Command" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>When it comes to scheduling tasks in a Linux environment, system administrators and developers often use the cron command for recurring tasks. However, there is another powerful tool for scheduling one-time jobs, known as the <code>at</code> command. This article will provide an in-depth exploration of the <code>at</code> command, including its syntax, usage examples, and best practices.</p> + +<h2>Understanding the at Command</h2> + +<p>The <code>at</code> command is a versatile utility that allows users to schedule a command or script to be executed at a specified time in the future. It is particularly useful for running one-time jobs, such as maintenance tasks, backups, or system updates, without requiring manual intervention. The <code>at</code> command reads the commands to be executed from standard input or from a file and schedules them accordingly.</p> + +<h2>Installing the at Command</h2> + +<p>Most Linux distributions come with the <code>at</code> command pre-installed. However, if it is not present on your system, you can install it using the package manager for your distribution. For Debian-based distributions, use the following command:</p> + +<pre> +sudo apt-get install at</pre> + +<p>For Red Hat-based distributions, use this command:</p> + +<pre> +sudo yum install at</pre> + +<h2>Syntax and Options</h2> + +<p>The basic syntax of the <code>at</code> command is as follows:</p> + +<pre> +at [OPTIONS] TIME</pre> + +<p>The available options for the <code>at</code> command include:</p> + +<ul><li><strong><code>-f</code>:</strong> Specifies a file containing the commands to be executed.</li> + <li><strong><code>-t</code>:</strong> Specifies the time at which to run the commands using a Unix timestamp.</li> + <li><strong><code>-m</code>:</strong> Sends an email to the user when the job has completed.</li> + <li><strong><code>-q</code>:</strong> Specifies a queue in which to place the job.</li> +</ul><h2>Scheduling a One-Time Job</h2> + +<p>To schedule a one-time job, simply provide the desired time for execution. The <code>at</code> command supports various time formats, such as:</p> + +<ul><li><strong>Relative time:</strong> "now + 1 hour" or "now + 30 minutes"</li> + <li><strong>Absolute time:</strong> "2:30 PM" or "15:30"</li> + <li><strong>Date and time:</strong> "10:00 AM tomorrow" or "2023-04-01 18:00"</li> +</ul><p>For example, to schedule a one-time job to create a file containing "Hello, World!" in the /tmp directory after one hour, use the following command:</p> + +<pre> +echo "echo 'Hello, World!' > /tmp/hello_world.txt" | at now + 1 hour</pre> + +<p>Alternatively, you can schedule the command as below:</p> + +<pre> +at now + 1 hour echo 'Hello, World!' > /tmp/hello_world.txt +</pre> + +<p>Press CTRL + D to exit from the <code>at</code> command terminal.</p> + +<h2>Listing and Managing Scheduled Jobs</h2> + +<p>To list all scheduled jobs for the current user, use the "atq" command:</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/one-time-task-scheduling-guide-master-command" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Mon, 17 Apr 2023 16:00:00 +0000 + George Whittaker + 1340913 at https://www.linuxjournal.com + + + Mastering the journalctl Command: A Comprehensive Guide + https://www.linuxjournal.com/content/mastering-journalctl-command-comprehensive-guide + <div data-history-node-id="1340911" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/mastering-the-journalctl-command-a-comprehensive-guide.jpg" width="850" height="500" alt="Mastering the journalctl Command: A Comprehensive Guide" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>System logs are a vital resource for administrators and developers looking to monitor system performance, troubleshoot issues, and understand the events taking place within the system. On this article, we learn about how on Linux systems, the <code>journalctl</code> command provides an effective way to access and manage these logs.</p> + +<h2>Introduction to the journalctl Command</h2> + +<p>The <code>journalctl</code> command is a utility that allows users to view and interact with systemd journal logs. These logs include information from various sources, such as the kernel, initrd, system services, applications, and systemd itself. The logs are stored in a binary format and can be queried efficiently using <code>journalctl</code>.</p> + +<p>The basic syntax of the <code>journalctl</code> command is as follows:</p> + +<pre> +journalctl [options…] [matches…]</pre> + +<h2>Viewing and Filtering Logs with journalctl</h2> + +<p>The most straightforward way to use <code>journalctl</code> is without any options. This will display all logged entries in chronological order:</p> + +<pre> +$ journalctl</pre> + +<p>However, the output can be overwhelming, especially on systems with a long runtime. To make navigation easier, the output is automatically paginated using the less command. Use the Enter key to scroll line by line, or the Space key to scroll page by page. To exit the log output, press q on your keyboard.</p> + +<p>To view logs in reverse chronological order (i.e., newest entries first), use the <code>-r</code> option:</p> + +<pre> +$ journalctl -r</pre> + +<p>You can limit the number of displayed log entries by using the -n option followed by the number of lines you want to display. For example, to view the last 15 entries:</p> + +<pre> +$ journalctl -n 15</pre> + +<p>To view only kernel-related messages, use the <code>-k</code> option:</p> + +<pre> +$ journalctl -k</pre> + +<p>Logs can also be filtered by priority. Log levels range from 0 (emergency) to 7 (debug), with lower numbers indicating higher priority. Use the <code>-p</code> option to view logs of a specific level and above. For example, to view error, critical, alert, and emergency logs:</p> + +<pre> +$ journalctl -p 3</pre> + +<p>To view logs from a specific system service, use the <code>-u</code> flag followed by the service name. For example, to view logs for the Apache service:</p> + +<pre> +$ journalctl -u apache2.service</pre> + +<h2>Working with Boot Logs</h2> + +<p>The <code>journalctl</code> command allows users to view logs from specific boot sessions. Each boot is logged separately, making it easy to isolate logs related to a particular boot. To see a list of all the logs from previous boots, use the <code>--list-boots</code> option:</p> + +<pre> +$ journalctl --list-boots</pre> + +<p>To view logs from the previous system boot, use the <code>-b</code> option with the number <code>-1</code>. Specify a different number to view logs from older boots:</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/mastering-journalctl-command-comprehensive-guide" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Fri, 14 Apr 2023 16:00:00 +0000 + George Whittaker + 1340911 at https://www.linuxjournal.com + + + Demystifying Kubernetes Operators: Creation, Benefits, and Use Cases + https://www.linuxjournal.com/content/demystifying-kubernetes-operators-creation-benefits-and-use-cases + <div data-history-node-id="1340909" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/demystifying-kubernetes-operators-creation-benefits-and-use-cases.jpg" width="850" height="500" alt="Demystifying Kubernetes Operators: Creation, Benefits, and Use Cases" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Introduction</h2> + +<p>Kubernetes is a powerful container orchestration platform that automates the deployment, scaling, and management of containerized applications. As Kubernetes continues to evolve, one of the concepts that has gained significant traction is the Kubernetes Operator. Operators extend the functionality of Kubernetes and provide a way to automate complex tasks, allowing users to manage applications and resources more efficiently. In this article, we will delve into the world of Kubernetes Operators, explore how they can be created, and examine their benefits and use cases.</p> + +<h2>Understanding Kubernetes Operators</h2> + +<span class="h3-replacement">What are Kubernetes Operators?</span> + +<p>Kubernetes Operators are software extensions that enable automated management of complex applications and resources within a Kubernetes cluster. Operators encapsulate both the operational logic and domain-specific knowledge required to manage specific applications or services.</p> + +<p>Operators are built using the Kubernetes custom resource definition (CRD) and custom controllers. A CRD defines a new resource type in the cluster, while the custom controller is responsible for watching and reconciling the state of the custom resource based on the desired state specified by the user. Together, these components provide a declarative way to manage applications and resources.</p> + +<span class="h3-replacement">Why Use Kubernetes Operators?</span> + +<p>Kubernetes Operators offer several benefits:</p> + +<ol><li><strong>Automation:</strong> Operators automate complex operational tasks, such as backup, scaling, and configuration management, reducing manual intervention and human error.</li> + <li><strong>Extensibility:</strong> Operators extend the capabilities of Kubernetes, allowing for the management of custom resources and services.</li> + <li><strong>Consistency:</strong> Operators provide a consistent and standardized approach to managing applications across different environments.</li> + <li><strong>Domain-Specific Knowledge:</strong> Operators encapsulate expert knowledge about the application or service they manage, making it accessible to users who may not be experts in that domain.</li> +</ol><h2>Creating a Kubernetes Operator</h2> + +<span class="h3-replacement">Steps to Build an Operator</span> + +<p>Creating a Kubernetes Operator involves the following steps:</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/demystifying-kubernetes-operators-creation-benefits-and-use-cases" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Tue, 11 Apr 2023 16:00:00 +0000 + George Whittaker + 1340909 at https://www.linuxjournal.com + + + Kubernetes vs. Docker: Exploring the Synergy in Containerization + https://www.linuxjournal.com/content/kubernetes-and-docker-exploring-synergy-containerization + <div data-history-node-id="1340907" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/kubernetes-and-docker-exploring-the-synergy-in-containerization-cc0.jpg" width="850" height="500" alt="Kubernetes vs. Docker: Exploring the Synergy in Containerization" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Introduction to Containerization</h2> +<p>Containerization is a revolutionary technology that allows software to be packaged and deployed in a consistent manner across various environments. It resolves challenges such as dependency conflicts and platform discrepancies by encapsulating applications along with their dependencies in lightweight, portable containers. In this article, we will explore two prominent tools in the field of containerization: Kubernetes and Docker. We will delve into their roles, their differences, and how they work in harmony to facilitate containerized application deployments.</p> +<h2>Understanding Docker: Creating and Running Containers</h2> +<p><span class="h3-replacement">What is Docker?</span></p> +<p>Docker is an open-source platform that automates the creation, deployment, and running of containerized applications. Docker provides the capability to build and package applications along with their dependencies into standardized units called containers. Containers can be thought of as lightweight, standalone executables that are isolated from the host system, yet share the same OS kernel.</p> +<p><span class="h3-replacement">Key Features of Docker</span></p> +<ul><li><strong>Portability:</strong> Docker containers can be run on any system that supports Docker, ensuring consistent behavior across different environments.</li> +<li><strong>Isolation:</strong> Each container runs in isolation with its own filesystem, ensuring that application dependencies do not interfere with each other.</li> +<li><strong>Scalability:</strong> Docker containers can be rapidly started, stopped, and scaled up or down as needed.</li> +<li><strong>Version Control:</strong> Docker images can be versioned and stored in a registry, enabling easy rollback to previous versions.</li> +</ul><h2>Exploring Kubernetes: Orchestrating Containers at Scale</h2> +<p><span class="h3-replacement">What is Kubernetes?</span></p> +<p>Kubernetes, often abbreviated as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Kubernetes provides a powerful framework for managing distributed systems by organizing containers into groups called "pods" and managing their lifecycle across a cluster of machines.</p> +<p><span class="h3-replacement">Key Features of Kubernetes</span></p> +<ul><li> +<p><strong>Cluster Management:</strong> Kubernetes clusters consist of one or more master nodes and multiple worker nodes that host containers.</p> +</li> +<li> +<p><strong>High Availability:</strong> Kubernetes ensures that applications are highly available by automatically restarting failed containers and rescheduling them to healthy nodes.</p> +</li> +<li> +<p><strong>Load Balancing:</strong> Kubernetes distributes network traffic among multiple pods to ensure optimal resource utilization and responsiveness.</p></li></ul></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/kubernetes-and-docker-exploring-synergy-containerization" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Fri, 07 Apr 2023 16:00:00 +0000 + George Whittaker + 1340907 at https://www.linuxjournal.com + + + SFTP Port Forwarding: Enabling Suppressed Functionality + https://www.linuxjournal.com/content/sftp-port-forwarding-enabling-suppressed-functionality + <div data-history-node-id="1340905" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/sftp-port-forwarding-enabling-suppressed-functionality.jpg" width="850" height="500" alt="SFTP Port Forwarding: Enabling Suppressed Functionality" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/charles-fisher" lang="" about="https://www.linuxjournal.com/users/charles-fisher" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">Charles Fisher</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Introduction</h2> + +<p>The SSH protocol enables three major classes of remote server activities: a) command execution (including a login shell), b) network forwarding and manipulation, and c) file transfer.</p> + +<p>The OpenSSH maintainers have determined that <code>sftp</code> and <code>scp</code> have no legitimate use for port forwarding (via the <code>-L</code> and <code>-R</code> options). A flag to explicitly disable these features is unconditionally passed to the child SSH executable during file transfers with these utilities.</p> + +<p>There may be users with a legitimate need for these features. An obvious subset are penetration testers tasked to verify that this capability is explicitly disabled on public SFTP servers.</p> + +<p>Below are two techniques to enable these suppressed features, by either modifying strings in the sftp binary itself, or by redirection through shells that are able to easily edit the command line. Depending upon the capabilities of the platform, either technique might be required to achieve this goal.</p> + +<h2>Suppression Details</h2> + +<p>To begin, it is important to locate running processes of interest. The shell function below will reveal PIDs that match a shell pattern (and note this is not a regex). This runs under Debian <code>dash</code> (and most other common shells) and relies on BSD options to <code>ps</code>:</p> + +<pre> +pps () { local a= b= c= IFS=$'\r'; ps ax | while read -r a + do [ "$b" ] || c=1; for b; do case "$a" in *"$b"*) c=1;; + esac; done; [ "$c" ] && printf '%s\n' "$a" && c=; done; }</pre> + +<p>A conventional SFTP session is launched, in order to examine the processes associated with it:</p> + +<pre> +$ id +uid=1001(aturing) gid=1001(aturing) groups=1001(aturing)... + +$ sftp <a href="mailto:aturing@sftp.victimandum.com">aturing@sftp.victimandum.com</a> +<a href="mailto:aturing@sftp.victimandum.com">aturing@sftp.victimandum.com</a>'s password: +Connected to <a href="https://www.google.com/url?q=http://sftp.victimandum.com&source=gmail-html&ust=1677172453704000&usg=AOvVaw1-qLXyY3uV-PUs3yE4jag3">sftp.victimandum.com</a>. +sftp></pre> + +<p>We assume above that the local UNIX user has an account on the remote SFTP server of the same username.</p> + +<p>Once the session is running, a local process search for the username reveals the child SSH process that is spawned by SFTP:</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/sftp-port-forwarding-enabling-suppressed-functionality" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Wed, 22 Feb 2023 17:00:00 +0000 + Charles Fisher + 1340905 at https://www.linuxjournal.com + + + SoCal Linux Expo Back For 20th Anniversary + https://www.linuxjournal.com/content/socal-linux-expo-back-20th-anniversary + <div data-history-node-id="1340903" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/shutterstock_11032609019_0.jpg" width="850" height="500" alt=" SoCal Linux Expo Back For 20th Anniversary" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/dennis-rex" lang="" about="https://www.linuxjournal.com/users/dennis-rex" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">Dennis Rex</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">Now in its 20th year of supporting and promoting the FOSS community, <a href="https://socallinuxexpo.org/">SCaLE 20x – the Southern California Linux Expo</a> – will be held at the Pasadena Convention Center March 9-12, 2023.</p> + +<p dir="ltr">This 4-day annual event brings together the vibrant Open Source user community, tech industry leaders, developers, users and many more.  Session track themes have included security, developer, embedded, medical and legal to name a few.  The <a href="https://www.socallinuxexpo.org/scale/20x/speakers">expert speakers</a> have never failed to impress and inform.  Your biggest challenge will likely be trying to pick which session to attend.  One certainty: <a href="https://www.socallinuxexpo.org/blog/announcing-keynote-speaker-arun-gupta">Saturday’s keynote by Arun Gupta</a> will be standing room only.</p> + +<p dir="ltr">Since my first SCaLE, <a href="https://www.socallinuxexpo.org/past/2005/">way back to 3x</a>, the expo floor has been my favorite hangout.  The expansive exhibit hall provides an opportunity to meet the people behind a favorite distribution or application.  There are compelling demonstrations of Open Source-based solutions, educational offerings and companies looking for top talent.  Oh, and SCaLE exhibitors always have the best swag.</p> + +<p dir="ltr">Would you like a glimpse of the future of Linux/FOSS? SCALE is a family friendly event that welcomes all ages.   <a href="https://www.socallinuxexpo.org/scale/20x/events/scale-kids">SCaLE: The Next Generation</a>, the track focused on kids and the work they do in OSS, is back for 20x.  All sessions are delivered by K-12 students and highlight interesting work or projects these students have been working on. It also includes hands-on activities for younger attendees.  Topics are expected to include security, video editing, big data and more.  These young folks will leave you feeling confident in the future of FOSS.</p> + +<p>Other co-located events include <a href="https://ceph.io/en/community/events/2023/ceph-days-socal/">Ceph Days SoCal</a>, <a href="https://community.cncf.io/events/details/cncf-kcd-los-angeles-presents-kcd-los-angeles-at-scale-20x/">Kubernetes Community Day</a>, <a href="https://devopsdays.org/events/2023-los-angeles/welcome/">DevOpsDayLA</a>, <a href="https://www.socallinuxexpo.org/scale/20x/events/postgres-scale">PostgreSQL @ SCaLE </a>, <a href="https://www.socallinuxexpo.org/scale/20x/events/scale-kids">SCaLE Kids</a> and <a href="https://e-ale.org/">Embedded Apprentice Linux Engineer (E-ALE)</a>.  Always popular, the <a href="https://www.socallinuxexpo.org/scale/20x/hands-beginner-linux-training">Hands-On Beginner Linux Training </a>is here for 20x.  <a href="https://register.socallinuxexpo.org/reg6/">Book your spot early</a> for this one.</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/socal-linux-expo-back-20th-anniversary" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Thu, 02 Feb 2023 17:00:00 +0000 + Dennis Rex + 1340903 at https://www.linuxjournal.com + + + Monitoring Oracle Servers With Checkmk + https://www.linuxjournal.com/content/monitoring-oracle-servers-checkmk + <div data-history-node-id="1340901" class="layout layout--onecol"> + <div class="layout__region layout__region--content"> + + <div class="field field--name-field-node-image field--type-image field--label-hidden field--item"> <img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/monitoring-oracle-servers-with-checkmk-featured.jpg" width="850" height="500" alt="Monitoring Oracle Servers With Checkmk" typeof="foaf:Image" class="img-responsive" /></div> + + <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/ferdinand-kunz" lang="" about="https://www.linuxjournal.com/users/ferdinand-kunz" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">Ferdinand Kunz</a></div> + + <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Databases are essential for many IT processes. Their performance and reliability depends on many factors and it makes sense to use a dedicated tool that helps you to stay on top of things. Monitoring your database with an external tool helps you identify performance issues proactively, but there are many factors to consider. With the wrong approach, you run the risk of missing valuable information and also can waste a lot of time configuring your database monitoring.</p> + +<p>In this tutorial, I will give a quick guide on how to monitor Oracle Database with Checkmk, a universal monitoring tool for all kinds of IT assets. Oracle Database is one of the most common database management systems (DBMS) for relational databases and Checkmk comes with a great preconfigured Oracle monitoring, so it will only take you a few minutes to get started. This will not only ensure the best performance of your databases, but also give you the option to find optimization opportunities.</p> + +<h2>Preconditions</h2> + +<p>You need a Checkmk site up and running. For this article, I am using the <a href="https://checkmk.com/download">Checkmk Free Edition</a> version 2.1.0p19, which I installed on Ubuntu server (version 20.04). Checkmk runs on Linux, including RHEL, CentOS, Debian, and others, as well as in a container, or as a virtual appliance. You can download the latest Checkmk version for all platforms from the official <a href="https://checkmk.com/">Checkmk website</a> and follow this <a href="https://checkmk.com/videos/en/ep-1-installing-checkmk-and-monitoring-your-first-host">video tutorial</a> to take your first steps.</p> + +<p>In this tutorial, I will use a simple Oracle server as an example. In my case, my Oracle database version 19.0 runs on a hardware server, and I use Rocky Linux version 9.0 as my operating system. I will show you how to configure and install the Checkmk agent. However, Checkmk can also monitor remote databases without the need to install an agent.</p> + +<p>You don't need any previous experience with Oracle monitoring, as Checkmk takes over the collection of the most important monitoring services and also sets threshold values for warnings and critical states. However, you need access rights to create user accounts for the database you want to monitor, you will do this in the first step.</p> + +<h2>Step 1: Creating an Oracle user account for the monitoring</h2> + +<p>First, you need to create a user account that Checkmk will use to query the monitoring data from your database. In my case, I am using <code>SQL Plus</code> and create the user through the terminal. The procedure differs depending on which Oracle environment and tool you are using. You can read more details about this in the <a href="https://docs.oracle.com/en/">Oracle documentation</a>.</p></div> + + <div class="field field--name-node-link field--type-ds field--label-hidden field--item"> <a href="https://www.linuxjournal.com/content/monitoring-oracle-servers-checkmk" hreflang="en">Go to Full Article</a> +</div> + + </div> + </div> + + + Tue, 31 Jan 2023 17:00:00 +0000 + Ferdinand Kunz + 1340901 at https://www.linuxjournal.com + + + + diff --git a/.config/newsboat/my_urls b/.config/newsboat/my_urls index 53e17baf..b45f44ce 100644 --- a/.config/newsboat/my_urls +++ b/.config/newsboat/my_urls @@ -47,3 +47,4 @@ file://./rss/mixus_blog.xml file://./rss/armin_ronacher.atom file://./rss/claritydev.xml file://./rss/stackoverflowpodcast.xml +file://./rss/linuxjournal.xml