0% found this document useful (0 votes)
3 views

Linux shell scripts Notes ✔️

The document contains a collection of 30 shell scripts for various Linux tasks, including file backup, system monitoring, user account management, log analysis, and network checks. Each script is designed to automate specific functions such as CPU usage tracking, database backups, and service management. The scripts are written in Bash and include comments for clarity on their purpose and usage.

Uploaded by

Hasan Alsalman
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Linux shell scripts Notes ✔️

The document contains a collection of 30 shell scripts for various Linux tasks, including file backup, system monitoring, user account management, log analysis, and network checks. Each script is designed to automate specific functions such as CPU usage tracking, database backups, and service management. The scripts are written in Bash and include comments for clarity on their purpose and usage.

Uploaded by

Hasan Alsalman
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Linux Production

Shell Scripts
👉Mahesh Sarjerao Girhe [ MSG] ✅

Linkedln:-
https://www.linkedin.com/in/
maheshgirhe7875
1. File Backup Script:
#!/bin/bash

backup_dir="/path/to/backup"
source_dir="/path/to/source"

# Create a timestamped backup of the source directory tar -


czf "$backup_dir/backup_$(date +%Y%m%d_%H%M%S).tar.gz"
"$source_dir"

2. System Monitoring Script:

#!/bin/bash threshold=90

# Monitor CPU usage and trigger alert if threshold exceeded


cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -
f1) if [ "$cpu_usage" -gt "$threshold" ]; then echo "High CPU usage
detected: $cpu_usage%"
# Add alert/notification logic here
fi

3. User Account Management Script:

#!/bin/bash username="newuser"

# Check if user exists; if not, create new user


if id "$username" &>/dev/null; then echo "User
$username already exists."
else useradd -m "$username" echo
"User $username created."
Fi
#

4. Log Analyzer Script:

#!/bin/bash

logfile="/path/to/logfile.log"

# Extract lines with "ERROR" from the log file


grep "ERROR" "$logfile" > error_log.txt echo
"Error log created."

5. Password Generator Script:

#!/bin/bash length=12

# Generate a random password


password=$(openssl rand -base64 $length)
echo "Generated password: $password"

6. File Encryption/Decryption Script:

#!/bin/bash file="/path/to/file.txt"

# Encrypt file using AES-256-CBC


openssl enc -aes-256-cbc -salt -in "$file" -out "$file.enc"
echo "File encrypted: $file.enc"

7. Automated Software Installation

Script: #!/bin/bash packages=("package1"

"package2" "package3") Install listed

packages using apt-get for package in

"${packages[@]}"; do sudo apt-get

install "$package" -y
done echo "Packages installed

successfully."

8. Network Connectivity Checker Script:

#!/bin/bash host="example.com"

# Check network connectivity by pinging a host


if ping -c 1 "$host" &>/dev/null; then echo
"Network is up."
else echo "Network is
down."
fi

9. Website Uptime Checker Script:

#!/bin/bash

website="https://example.com"

# Check if website is accessible


if curl --output /dev/null --silent --head --fail "$website"; then
echo "Website is up."
else echo "Website is
down."
fi

10. Data Cleanup Script: #!/bin/bash

directory="/path/to/cleanup"
#

Remove files older than 7 days in specified directory


find "$directory" -type f -mtime +7 -exec rm {} \; echo
"Old files removed."

11. CPU Usage Tracker Script:

#!/bin/bash

output_file="cpu_usage_log.txt"

# Log current CPU usage to a file with timestamp echo "$(date) $(top
-bn1 | grep 'Cpu(s)' | awk '{print $2}' | cut -d.
-f1)%" >> "$output_file"
echo "CPU usage logged."

12. System Information Script:

#!/bin/bash

output_file="system_info.txt"

# Gather system information and save to a file


echo "System Information:" > "$output_file"
echo "-------------------" >> "$output_file"
echo "Hostname: $(hostname)" >> "$output_file"
echo "OS: $(uname -a)" >> "$output_file" echo
"Memory: $(free -h)" >> "$output_file" echo
"Disk Space: $(df -h)" >> "$output_file" echo
"System info saved to $output_file."
13. Task Scheduler Script:
#!/bin/bash

scheduled_task="/path/to/your_script.sh"
schedule_time="0 2 * * *"
Schedule a task using cron echo "$schedule_time
$scheduled_task" | crontab echo "Task scheduled
successfully."

14. Disk Space Monitoring Script:

#!/bin/bash threshold=90

# Monitor disk usage and trigger alert if threshold exceeded


disk_usage=$(df -h | grep "/dev/sda1" | awk '{print $5}' | cut -d%
-f1)
if [ "$disk_usage" -gt "$threshold" ]; then echo
"High disk usage detected: $disk_usage%"
# Add alert/notification logic here
fi

15. Remote Server Backup Script:


#!/bin/bash

source_dir="/path/to/source"
remote_server="user@remoteserver:/path/to/backup"

# Backup files/directories to a remote server using rsync


rsync -avz "$source_dir" "$remote_server"
echo "Files backed up to remote server."
#

16. Environment Setup Script:


#!/bin/bash

# Customize for your specific environment setup echo


"Setting up development environment..." # Install
necessary packages, configure settings, etc. echo
"Development environment set up successfully."
17. File Compression/Decompression Script:

#!/bin/bash

file_to_compress="/path/to/file.txt"

# Compress a file using gzip


gzip "$file_to_compress"
echo "File compressed: $file_to_compress.gz"

18. Database Backup Script:


#!/bin/bash

database_name="your_database"
output_file="database_backup_$(date +%Y%m%d).sql"

# Perform database backup using mysqldump


mysqldump -u username -ppassword "$database_name" > "$output_file"
echo "Database backup created: $output_file"

19. Git Repository Updater Script:

#!/bin/bash

git_repo="/path/to/your/repo"

# Update a Git repository cd


"$git_repo" git pull origin
master echo "Git repository
updated."
20. Directory Synchronization Script:
#!/bin/bash

source_dir="/path/to/source"
destination_dir="/path/to/destination"
# Synchronize directories using rsync rsync -
avz "$source_dir" "$destination_dir" echo
"Directories synchronized successfully."

21. Web Server Log Analyzer Script:

#!/bin/bash

log_file="/var/log/apache2/access.log"

# Analyze web server log to count unique IP addresses


awk '{print $1}' "$log_file" | sort | uniq -c | sort -
nr echo "Web server log analyzed."

22. System Health Check Script:

#!/bin/bash

output_file="system_health_check.txt"

# Perform system health check and save results to a file


echo "System Health Check:" > "$output_file" echo "----
-----------------" >> "$output_file" echo "Uptime:
$(uptime)" >> "$output_file"
echo "Load Average: $(cat /proc/loadavg)" >> "$output_file"
echo "Memory Usage: $(free -m)" >> "$output_file" echo
"System health check results saved to $output_file."

23. Automated Database Cleanup Script:


#!/bin/bash

database_name="your_database"
days_to_keep=7

# Clean up old database backups older than specified days find


/path/to/database/backups -name "$database_name*.sql" -mtime
+"$days_to_keep" -exec rm {} \; echo
"Old database backups cleaned up."
24. User Password Expiry Checker Script:
#!/bin/bash

# Check password expiry for users with bash shell


IFS=$'\n'
for user in $(cat /etc/passwd | grep "/bin/bash" | cut -d: -f1); do
password_expires=$(chage -l "$user" | grep "Password expires" |
awk '{print $4}') echo "User: $user, Password Expires:
$password_expires"
done
unset IFS

25. Service Restart Script:

#!/bin/bash

service_name="your_service"

# Restart a specified service sudo


systemctl restart "$service_name" echo
"Service $service_name restarted."

26. Folder Size Checker Script:

#!/bin/bash

folder_path="/path/to/folder"

# Check and display the size of a specified folder


du -sh "$folder_path" echo
"Folder size checked."

27. Backup Rotation Script:

#!/bin/bash
backup_dir="/path/to/backups"

max_backups=5

# Rotate backups by deleting the oldest if more than max_backups


while [ $(ls -1 "$backup_dir" | wc -l) -gt "$max_backups" ]; do
oldest_backup=$(ls -1t "$backup_dir" | tail -n 1)
rm -r "$backup_dir/$oldest_backup"
done
echo "Backup rotation completed."

28. Remote Script Execution Script:


#!/bin/bash

remote_server="user@remote-server"
remote_script="/path/to/remote/script.sh"

# Execute a script on a remote server via SSH ssh


"$remote_server" "bash -s" < "$remote_script"
echo "Remote script executed."

29. Network Interface Information Script:

#!/bin/bash network_interface="eth0"

# Display network interface information


ifconfig "$network_interface"
echo "Network interface information displayed."

30. Random Quotes Generator Script: #!/bin/bash

quotes=("Quote 1" "Quote 2" "Quote 3" "Quote 4")

# Generate and display a random quote from the array


random_index=$((RANDOM % ${#quotes[@]})) echo
"Random Quote: ${quotes[$random_index]}"

You might also like