Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
584e4ac
Add learning plan for DevOps development
sumit9165 Jan 24, 2026
7db5889
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 25, 2026
ba5a2ca
Created linux-architecture-notes.md
sumit9165 Jan 25, 2026
070b038
Add detailed Linux architecture notes
sumit9165 Jan 25, 2026
113f546
Revise Linux architecture notes for clarity and detail
sumit9165 Jan 25, 2026
043adec
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 26, 2026
5f4a0ca
Add Linux commands cheatsheet
sumit9165 Jan 26, 2026
cd6eb4d
Revise Linux commands cheatsheet structure and content
sumit9165 Jan 26, 2026
0918d04
Update learning plan with formatting and goals
sumit9165 Jan 26, 2026
5d75255
Refactor learning plan formatting for clarity
sumit9165 Jan 26, 2026
a56f548
Update learning plan formatting and headings
sumit9165 Jan 26, 2026
b823da3
Revise current level description in learning plan
sumit9165 Jan 26, 2026
11c3c27
Update DevOps skills to include Kubernetes
sumit9165 Jan 26, 2026
a12427f
Format command list with code formatting
sumit9165 Jan 26, 2026
f6f1459
Fix cp command syntax in cheatsheet
sumit9165 Jan 26, 2026
8c368c2
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 27, 2026
6f84ed2
Add Linux process management commands documentation
sumit9165 Jan 27, 2026
38b5674
Revise Linux practice commands and explanations
sumit9165 Jan 28, 2026
b034db0
Update linux-practice.md with management commands
sumit9165 Jan 28, 2026
0b0abe9
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 28, 2026
4254703
added a linux-troubleshooting-runbook.md
sumit9165 Jan 29, 2026
75e2cc0
Add runbook for 8 commands
sumit9165 Jan 29, 2026
ada00c6
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 29, 2026
d69ec2e
Expand Linux troubleshooting runbook with detailed steps
sumit9165 Jan 29, 2026
b811537
Update bg command description in linux-practice.md
sumit9165 Jan 30, 2026
ebfaa6d
Expand Linux troubleshooting runbook for sshd
sumit9165 Jan 30, 2026
5d62814
Create Docker troubleshooting runbook
sumit9165 Jan 30, 2026
d0ccaf4
Add nginx troubleshooting runbook
sumit9165 Jan 30, 2026
24f8c9b
Create NGINX troubleshooting runbook
sumit9165 Jan 30, 2026
fd38989
Create database troubleshoot runbook
sumit9165 Jan 30, 2026
cc171e0
Create troubleshooting interview questions for SRE
sumit9165 Jan 30, 2026
26bf554
Create Kubernetes troubleshooting runbook
sumit9165 Jan 30, 2026
3af7fbb
Create ultimate on-call runbook template
sumit9165 Jan 30, 2026
0d9dbff
Create on-call visual cheat sheet and decision tree
sumit9165 Jan 30, 2026
29229b6
Add emergency on-call cheat sheet
sumit9165 Jan 30, 2026
e224e66
Add file-io-practice.md with file handling instructions
sumit9165 Jan 30, 2026
f95f012
Merge branch 'TrainWithShubham:master' into master
sumit9165 Jan 30, 2026
c38ffc8
Merge branch 'TrainWithShubham:master' into master
sumit9165 Feb 1, 2026
f35e051
Create day-07-linux-fs-and-scenarios.md
sumit9165 Feb 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions 2026/day-01/learning-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Current Level - Fresher in DevOps
(Ex- Electrical Maintenance Engineer of Tata Steel with 5 year Experience).

---
## Goals of 90 Days of DevOps
1. learning a Basics of DevOps.
2. Making Notes with Consistency.
3. Improveing Myself Everyday with Hands-On Practice.

---
## Core DevOps Skills
1. Linux and Networking
2. Git & Docker, Kubernetes
3. Understand how to debug the problems and finding a reason behind the problem why it's occur?.

---
## Weekly Time Budget -
1. Daily - 3 Hours spending on learning and hands-on.
2. Weekdays - 2 Hours spending on learning and hands-on.
----
113 changes: 113 additions & 0 deletions 2026/day-02/linux-architecture-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Linux Operating System
## Operating System
- The operating system manages the communication between your software and your hardware. Without the operating system (OS), the software wouldn’t function.
- It is the manager and administrator of all the system resources and facilities. Without it, nothing works.
## What is Linux?
- Just like Windows, iOS, and Mac OS, Linux is an operating system.
- An operating system is software that manages all of the hardware resources associated with your desktop or laptop.
---
### Linux Operating System have several different pieces.
- Bootloader – The software that manages the boot process of your computer. For most users, this will simply be a splash screen that pops up and eventually goes away to boot into the operating system.
- Kernel – The kernel is the core of the system and manages the CPU, memory, and peripheral devices.
-The kernel is the lowest level of the OS.
- Init system – This is a sub-system that bootstraps the user space and is charged with controlling daemons.
- One of the most widely used init systems is systemd. It is the init system that manages the boot process, once the initial booting is handed over from the bootloader (i.e., GRUB or GRand Unified Bootloader).
- Daemons – These are background services (printing, sound, scheduling, etc.).
- It will start up during boot or after you log into the desktop.
- Graphical server – This is the sub-system that displays the graphics on your monitor.
- Desktop environment – This is the piece that the users actually interact with.
- Applications – Ubuntu Linux has the Ubuntu Software Center (a rebrand of GNOME Software) which allows you to quickly search among the thousands of apps and install them from one centralized location.
---
## Why Use Linux?
- Linux is less vulnerable to such attacks. As for server reboots, they’re only necessary if the kernel is updated.
- It is not out of the ordinary for a Linux server to go years without being rebooted.
- If you follow the regular recommended updates, stability and dependability are practically assured.
- You can install Linux on many computers as you like without paying a rupees for software or server licensing.
---

## Open Source
- You can freely run the program, for any purpose.
- You can freely study how the program works, and change it, make it according to what you want.
- You can freely redistribute copies so you can help others.
- You can freely distribute copies of your modified versions to others.
---

## What is a “distribution?”
Linux has a number of different versions to suit From new users to hard-core users, you’ll find a “flavor” of Linux.
These versions are called distributions (or, in the short form, “distros”).
- Popular Linux distributions include:
1. LINUX MINT
2. MANJARO
3. DEBIAN
4. UBUNTU
5. ANTERGOS
6. SOLUS
7. FEDORA
8. ELEMENTARY OS
9. OPENSUSE
---

## Which distribution is right for you?

- For Beginner with basic skills --- Linux Mint, Ubuntu, Elementary OS or Deepin.
- For Intermediate or above-average range skills, you could go with a distribution like --- Debian or Fedora.
- For Advanced level skills which know's computer and system administration, use a distribution like --- Gentoo.
- If you want a challenge, you can build your own Linux distribution, with the help of Linux From Scratch.
---

## Installing Linux in Windows
- Through WSL2.
- Through Virtual Machines.
- Through DualBoot.

The Ubuntu Server does not install a GUI interface
- You can install a GUI package on the Ubuntu Server with a single command like.
- `sudo apt-get install ubuntu-desktop`
---

## Process & Process States:

- A process is more than just a program. For example, if you are using a text editor, the file you are editing is not part of the program on disk, but is part of the process in memory. If someone else were to be using the same editor, both of you would be using the same program. However, each of you would have a different process in memory

- Many different users can be on the system at the same time, they have processes that are in memory all at the same time. The system needs to keep track of what user is running what process, which terminal the process is running on, and what other resources the process has (such as open files). All of this is part of the process.
With the exception of the init process (PID 1) every process is the child of another process. Therefore every process with the exception of the init process has a “parent” process.
---

### Process States
The states that a Process enters in working from start till end are known as Process states. These are listed below as:
- Created -Process is newly created by system call, is not ready to run
- User running -Process is running in user mode which means it is a user process.
- Kernel Running -Indicates process is a kernel process running in kernel mode.
- Zombie- Process does not exist/ is terminated.
- Preempted- When process runs from kernel to user mode, it is said to be preempted.
- Ready to run in memory- It indicated that process has reached a state where it is ready to run in memory and is waiting for kernel to schedule it.
- Ready to run, swapped - Process is ready to run but no empty main memory is present
- Sleep, swapped- Process has been swapped to secondary storage and is at a blocked state.
- Asleep in memory- Process is in memory(not swapped to secondary storage) but is in blocked state.
---

### After Process States status will be changing like this-
- User-running: Process is in user-running.
- Kernel-running: Process is allocated to kernel and hence, is in kernel mode.
- Ready to run in memory: Further, after processing in main memory process is rescheduled to the Kernel.i.e.The process is not executing but is ready to run as soon as the kernel schedules it.
- Asleep in memory: Process is sleeping but resides in main memory. It is waiting for the task to begin.
- Ready to run, swapped: Process is ready to run and be swapped by the processor into main memory, thereby allowing kernel to schedule it for execution.
- Sleep, Swapped: Process is in sleep state in secondary memory, making space for execution of other processes in main memory. It may resume once the task is fulfilled.
- Pre-empted: Kernel preempts an on-going process for allocation of another process, while the first process is moving from kernel to user mode.
- Created: Process is newly created but not running. This is the start state for all processes.
- Zombie: Process has been executed thoroughly and exit call has been enabled. The process, thereby, no longer exists. But, it stores a statistical record for the process. This is the final state of all processes.
---

## Commands in daily use
1. `pwd`
2. `ls`
3. `cd`
4. `mkdir`
5. `touch`

---





70 changes: 70 additions & 0 deletions 2026/day-03/linux-commands-cheatsheet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Linux Commands Cheatsheet
----
## Linux Commands list & Networking Commands
----
| Commands | Description |
| ---------| ----------- |
| `pwd` | It shows the present working directory |
| `ls` | It shows available files and directories list in present working directory |
| `uname` | It shows name of the OS |
| `uname -r` | It shows version of OS |
| `cd` | It use for change directory from currently you are |
| `clear` | It use for clear screen |
| `whoami` | It shows currently login user name |
| `history` | It show history list of your commands |
| `date` | It show time and date |
| `mkdir` | It use for creating a directory(folder) like `mkdir Documents`. |
| `touch` | It use for create a file like `touch hello.txt`. |
| `cp` | It use for copy and paste file or directory `cp <source of file> <destination where you want to paste it>/`. |
| `mv` | It use for 1.( move file/directory{folder}) and 2. (rename file/directory{folder}). |
| `rm` | It use for remove file/directory(folder). like `rm /Documents`. |
| `ps` | It show the process for current shell |
| `htop` | This will open an interactive interface showing all running processes. |
| `exit` | It use for logout. |
| `ping` | It use to check Internet connection between host/server and user/server |
| `ip addr` | It show information of all network interfaces and IPs |
| `dig` | It shows information about DNS. |
| `host` | It prints IP address of a specific domain. |
| `ping` | It use for testing connectivity between two systems on a network |

----
## Linux User Management and Group Management Commands.
| Commands | Description | Example |
| ---------| ----------- | ----------- |
| `useradd` | It use for add new useraccount in your system. | `useradd sumit` |
| `cat /etc/passwd \| grep sumit` | It show you the information of useraccount on your shell | `cat /etc/passwd \| grep sumit` |
| `userdel` | It use for deleting an existing useraccount from your system | `userdel sumit` |
| `users` | It use for showing name of current active logged-In Users | `users` |
| `who` | It use for showing information about current logged-In User | `who` |
| `whoami` | It use for display the name of current logged-In user | `whoami` |
| `passwd` | It use for password change of user | `passwd sumit` |
| `groupadd` | It use for adding a new usergroup | `groupadd Hello` |
| `groupdel` | It use for deleting an existing group | `groupdel Hello` |
| `groupmod -n` | It use for modify or change a group name | `groupmod -n Jai Hello` |
| `groups` | It use for show groups where Jai is a member of group. | `groups Jai` |
| `gpasswd -a` | It use for manage group members and group passwords | `gpasswd -a sumit Jai` |
| `grpck` | It use for check group configuration files for errors | `grpck` |

----






















140 changes: 140 additions & 0 deletions 2026/day-04/linux-practice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Practiced on Process commands, Service Commands, Log Commands.
----

## Process Management Commands.
**1. ps** command show you process running on your kernel.:-
* PID :- is the unique processID of process. *
* TTY:- is the type of terminal where user is logged in. pts means pseudo terminal. *
* TIME gives you how long the process has been running. *
* CMD is the command that you run to launch the process. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `ps` | It show running process in the current shell | `ps` |
| `ps -U` | It show information about all processes run by user. | `ps -U username` |
| `pstree` | It show running processs information in tree . | `pstree` |

------

**2. top** command show you the running process in real-time with memory and cpu usage.
**top** command use for monitoring of processes.
* PID: Unique Process ID given to each process. *
* User: Username of the process owner. *
* PR: Priority given to a process while scheduling. *
* NI: ‘nice’ value of a process. *
* VIRT: Amount of virtual memory used by a process. *
* RES: Amount of physical memory used by a process. *
* SHR: Amount of memory shared with other processes. *
* S: state of the process
‘D’ = uninterruptible sleep
‘R’ = running
‘S’ = sleeping
‘T’ = traced or stopped
‘Z’ = zombie *
* %CPU: Percentage of CPU used by the process. *
* %MEM; Percentage of RAM used by the process. *
* TIME+: Total CPU time consumed by the process. *
* Command: Command used to activate the process. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `top` | It track the running process. | `top` |

------

**3. kill** command **kill(stop)** your running process.
* it will use with speccific process ID or name of the process. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `kill` | It use for stop process in your OS. | `kill 9 1234` |

-------

**4. nice** command use for start new process with priority.
* Priority values range from -20 (highest) to 19 (lowest). *
* it will use with speccific process ID or name of the process. *
* **renice** command use for change priority of running process. *
* it will use with speccific process ID or name of the process. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `nice` | It will use for start new process with priority | `nice -n 10 command` |
| `renice` | It will use for change priority of process | `renice -n 5 -p 1234` |

-------

**5. free** command show free and used memory(RAM) on linux.
* **free -m** show you output in MB. *
* **free -g** show you output in GB. *
* **free -h** show you output in readable format. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `free` | It show you free and used memory on your system. | `free -h` |

-----

6. **df** command show free hard disk space on your linux system.
* **df -h** show you output in readable format. *

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `df` | It show you free hard disk on your linux system.| `df -h` |

-----

**7. bg** command send process to background.

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `bg` | It use to start a recently suspended job on your linux system.| `bg` |

-----
**8. fg** command use to run a stopped process in foreground.

| Commands | Description | Example |
| -------- | ----------- | ------- |
| `fg` | It will run process in forground which is stopped.| `fg %id_of_job &` |

-----------
# system Management Commands

**1. `systemctl`** It controls system startup, and manages background services.
* `systemctl start apache` start the service of apache with this command. *
* `systemctl stop apache` stop the service of apache with this command. *
* `systemctl status ssh` show status of ssh service with this command. *
* `sudo systemctl enable apache2` It Enables the Apache web server to start automatically at system boot. *
* `sudo systemctl disable apache2` It Disables the Apache web server, preventing it from starting automatically at boot. *
* `sudo systemctl status apache2` It Displays the "current status" of Apache (whether it’s _active_, _inactive_, _running_, or _failed_). *
* `sudo systemctl restart apache2` It Restarts the Apache web server, applying any configuration or update changes. *
* `sudo systemctl reload apache2` It Reloads Apache configuration without completely stopping the service, useful after minor config edits. *
* `sudo systemctl mask apache2` It Prevents the Apache service from being started manually or automatically, even if required by other services. *
* `sudo systemctl unmask apache2` It Allows the Apache service to be started or enabled again. *
* `sudo systemctl set-default graphical.target` It Sets the system to boot into the graphical (GUI) mode by default instead of command-line mode. *
* `systemctl list-unit-files` It Lists all available unit files on the system, showing which are enabled, disabled, or static. *

----------

# Logging and Monitoring Commands

**1. `journalctl`** It command is used to view logs collected by the systemd journal.
* `journalctl -xe` This shows detailed error logs and recent system messages. *
* `last` The last command displays the login and logout history of users. *
* `history` The history command shows previously executed commands by the user. *
* `sar -u` The sar command collects and reports system performance statistics. *
* `script session.log` The script command records all terminal activity in a file. *
* `scriptreplay timing.log session.log` The scriptreplay command replays a terminal session recorded using the script command. *
------












Loading