linux server disk cleaner sccripts
This commit is contained in:
commit
b25dfe4e39
4
clean-disk
Executable file
4
clean-disk
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
journalctl --disk-usage #checks disk size used by journal
|
||||||
|
journalctl --vacuum-time=3d #deletes journal older than 3 days
|
63
clean_old_kernals.sh
Normal file
63
clean_old_kernals.sh
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get currently running kernel version
|
||||||
|
current_kernel=$(uname -r)
|
||||||
|
echo "Currently running kernel: $current_kernel"
|
||||||
|
|
||||||
|
# Get all installed kernels
|
||||||
|
installed_kernels=$(dpkg --list | grep linux-image | awk '{print $2}')
|
||||||
|
|
||||||
|
# Determine the latest kernel version installed
|
||||||
|
kernel_versions=$(echo "$installed_kernels" | grep -Eo '6.1.0-[0-9]+-cloud-amd64' | sort -V)
|
||||||
|
|
||||||
|
latest_kernel=$(echo "$kernel_versions" | tail -n 1)
|
||||||
|
second_latest=$(echo "$kernel_versions" | tail -n 2 | head -n 1)
|
||||||
|
third_latest=$(echo "$kernel_versions" | tail -n 3 | head -n 1)
|
||||||
|
|
||||||
|
echo -e "\nKernels that will be KEPT:"
|
||||||
|
echo "$current_kernel (currently running)"
|
||||||
|
echo "$latest_kernel (latest installed)"
|
||||||
|
echo "$second_latest (second latest)"
|
||||||
|
echo "$third_latest (third latest)"
|
||||||
|
|
||||||
|
# Prepare a list of kernels to remove
|
||||||
|
echo -e "\nKernels that will be REMOVED:"
|
||||||
|
kernels_to_remove=()
|
||||||
|
for kernel in $installed_kernels; do
|
||||||
|
if [[ "$kernel" != *"$current_kernel"* ]] && \
|
||||||
|
[[ "$kernel" != *"$latest_kernel"* ]] && \
|
||||||
|
[[ "$kernel" != *"$second_latest"* ]] && \
|
||||||
|
[[ "$kernel" != *"$third_latest"* ]]; then
|
||||||
|
echo "$kernel"
|
||||||
|
kernels_to_remove+=("$kernel")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Confirm before removing
|
||||||
|
echo -e "\nDo you want to proceed with the removal? (y/N): "
|
||||||
|
read -r confirm
|
||||||
|
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
|
||||||
|
echo "Aborted."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove old kernels
|
||||||
|
if [ ${#kernels_to_remove[@]} -eq 0 ]; then
|
||||||
|
echo "No old kernels to remove."
|
||||||
|
else
|
||||||
|
echo "Removing old kernels..."
|
||||||
|
sudo apt-get purge -y "${kernels_to_remove[@]}"
|
||||||
|
sudo apt-get autoremove --purge -y
|
||||||
|
sudo apt-get clean
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update GRUB
|
||||||
|
echo "Updating GRUB..."
|
||||||
|
sudo update-grub
|
||||||
|
|
||||||
|
# Display remaining disk space
|
||||||
|
echo -e "\nDisk space after cleanup:"
|
||||||
|
df -h /
|
||||||
|
|
||||||
|
echo "Cleanup completed!"
|
||||||
|
|
52
remove-big-folders-unused-docker.sh
Normal file
52
remove-big-folders-unused-docker.sh
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Displaying the 20 largest files on the system:"
|
||||||
|
find / -xdev -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 20
|
||||||
|
|
||||||
|
echo -e "\nThe following files are safe to remove and will free up space:"
|
||||||
|
SAFE_TO_REMOVE=(
|
||||||
|
"/var/log/btmp"
|
||||||
|
"/usr/local/nginx/logs/access.log"
|
||||||
|
"/usr/local/nginx/logs/error.log"
|
||||||
|
"/var/log/nginx/access.log"
|
||||||
|
"/var/log/letsencrypt/letsencrypt.log"
|
||||||
|
"/var/log/nginx/yarr_access.log"
|
||||||
|
"/var/lib/apt/lists/*"
|
||||||
|
)
|
||||||
|
|
||||||
|
for file in "${SAFE_TO_REMOVE[@]}"; do
|
||||||
|
if [ -e "$file" ] || [ -d "$file" ]; then
|
||||||
|
echo "$file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Do you want to proceed with the removal? (y/N): " CONFIRM
|
||||||
|
if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "\nRemoving files..."
|
||||||
|
for file in "${SAFE_TO_REMOVE[@]}"; do
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
> "$file"
|
||||||
|
echo "Truncated: $file"
|
||||||
|
elif [ -d "$file" ]; then
|
||||||
|
rm -rf "$file"
|
||||||
|
echo "Removed directory: $file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "\nCleaning APT cache..."
|
||||||
|
apt clean
|
||||||
|
|
||||||
|
echo -e "\nPruning Docker (if installed)..."
|
||||||
|
if command -v docker >/dev/null 2>&1; then
|
||||||
|
docker system prune -af
|
||||||
|
docker volume prune -f
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\nCleaning journal logs..."
|
||||||
|
journalctl --vacuum-size=50M
|
||||||
|
|
||||||
|
echo -e "\nCleanup completed."
|
||||||
|
else
|
||||||
|
echo "Operation cancelled."
|
||||||
|
fi
|
||||||
|
|
52
remove-heavy-packages.sh
Normal file
52
remove-heavy-packages.sh
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Display the 20 heaviest installed packages
|
||||||
|
echo "Top 20 heaviest installed packages:"
|
||||||
|
echo "-----------------------------------"
|
||||||
|
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn | awk '{printf "%d. %.3f MB\t%s\n", NR, $1/1024, $2}' | head -n 20
|
||||||
|
|
||||||
|
# Prompt user for input
|
||||||
|
echo -e "\nDo you want to remove any of these packages? (y/N): "
|
||||||
|
read -r confirm
|
||||||
|
|
||||||
|
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "\nEnter the numbers of the packages to remove (e.g., 1 3 5), or press Enter to skip: "
|
||||||
|
read -r choices
|
||||||
|
|
||||||
|
if [ -n "$choices" ]; then
|
||||||
|
# Get the package names for the chosen numbers
|
||||||
|
packages_to_remove=()
|
||||||
|
for choice in $choices; do
|
||||||
|
package=$(dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn | awk '{print $2}' | head -n 20 | sed -n "${choice}p")
|
||||||
|
if [ -n "$package" ]; then
|
||||||
|
packages_to_remove+=("$package")
|
||||||
|
else
|
||||||
|
echo "Invalid choice: $choice"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Confirm and remove the selected packages
|
||||||
|
if [ ${#packages_to_remove[@]} -gt 0 ]; then
|
||||||
|
echo -e "\nThe following packages will be removed: ${packages_to_remove[*]}"
|
||||||
|
echo -e "Are you sure? (y/N): "
|
||||||
|
read -r final_confirm
|
||||||
|
|
||||||
|
if [[ "$final_confirm" =~ ^[Yy]$ ]]; then
|
||||||
|
apt remove --purge "${packages_to_remove[@]}"
|
||||||
|
apt autoremove -y
|
||||||
|
echo "Selected packages removed successfully."
|
||||||
|
else
|
||||||
|
echo "Operation cancelled."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No valid packages selected for removal."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No packages selected. Exiting."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No action taken. Exiting."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user