虚拟化容器,大数据,DBA,中间件,监控。

Linux制作有良好提示的清理缓存目录的脚本并加密脚本文件

26 11月
作者:admin|分类:系统运维

Linux制作有良好提示的清理缓存目录的脚本并加密脚本文件


1,清理/home/scan/下目录中的缓存,会有提示操作。

#!/bin/bash
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 目标目录
TARGET_DIR="/home/scan"
# 函数:显示标题
show_header() {
    clear
    echo -e "${BLUE}=================================${NC}"
    echo -e "${BLUE}     目录文件清理工具${NC}"
    echo -e "${BLUE}=================================${NC}"
    echo ""
}
# 函数:检查目录是否存在
check_directory() {
    if [ ! -d "$TARGET_DIR" ]; then
        echo -e "${RED}错误:目标目录 '$TARGET_DIR' 不存在!${NC}"
        return 1
    fi
    
    if [ ! -r "$TARGET_DIR" ]; then
        echo -e "${RED}错误:没有读取目录 '$TARGET_DIR' 的权限!${NC}"
        return 1
    fi
    
    if [ ! -w "$TARGET_DIR" ]; then
        echo -e "${RED}错误:没有写入目录 '$TARGET_DIR' 的权限!${NC}"
        return 1
    fi
    
    return 0
}
# 函数:显示目录内容
show_directory_contents() {
    echo -e "${YELLOW}目标目录内容预览:${NC}"
    echo -e "${BLUE}目录路径:$TARGET_DIR${NC}"
    echo ""
    
    # 显示文件和子目录
    if [ "$(ls -A "$TARGET_DIR")" ]; then
        echo -e "${YELLOW}文件和子目录列表:${NC}"
        ls -la "$TARGET_DIR"
        echo ""
        echo -e "${YELLOW}目录大小统计:${NC}"
        du -sh "$TARGET_DIR"
    else
        echo -e "${GREEN}目录为空,无需清理${NC}"
    fi
    echo ""
}
# 函数:安全清理目录
safe_clean_directory() {
    local file_count=$(find "$TARGET_DIR" -type f | wc -l)
    local dir_count=$(find "$TARGET_DIR" -type d | wc -l)
    
    echo -e "${RED}警告:此操作将删除目录内所有文件!${NC}"
    echo -e "${YELLOW}统计信息:${NC}"
    echo -e "  文件数量: $file_count"
    echo -e "  目录数量: $((dir_count-1))" # 减去根目录
    
    # 显示将要删除的文件类型
    echo -e "${YELLOW}文件类型分布:${NC}"
    find "$TARGET_DIR" -type f -name "*.*" | sed 's/.*\.//' | sort | uniq -c | sort -nr | head -10
    
    echo ""
    read -p "$(echo -e ${RED}'您确定要删除以上所有文件吗?(输入 \"YES\" 确认): '${NC})" confirm
    
    if [ "$confirm" = "YES" ]; then
        echo -e "${YELLOW}正在清理目录...${NC}"
        
        # 删除所有文件但保留目录结构
        find "$TARGET_DIR" -type f -exec rm -f {} \; 2>/dev/null
        
        if [ $? -eq 0 ]; then
            echo -e "${GREEN}目录清理完成!${NC}"
            echo -e "${GREEN}所有文件已被安全删除${NC}"
        else
            echo -e "${RED}清理过程中出现错误${NC}"
        fi
    else
        echo -e "${GREEN}已取消清理操作${NC}"
    return 1
    fi
}
# 函数:主菜单
main_menu() {
    while true; do
        show_header
        echo -e "${BLUE}当前操作目录:$TARGET_DIR${NC}"
        echo ""
        
        if ! check_directory; then
            echo -e "${RED}请检查目录是否存在或权限设置${NC}"
            break
        fi
        
        show_directory_contents
        
        echo -e "${YELLOW}请选择操作:${NC}"
        echo -e "  1) 预览目录内容"
        echo -e "  2) 执行清理操作"
        echo -e "  3) 退出程序"
        echo ""
        
        read -p "$(echo -e ${BLUE}'请输入选项 (1-3): '${NC})" choice
        
        case $choice in
            1)
                show_directory_contents
                read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
                ;;
            2)
                safe_clean_directory
                read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
                ;;
            3)
                echo -e "${GREEN}感谢使用目录清理工具!${NC}"
                exit 0
                ;;
            *)
                echo -e "${RED}无效选项,请重新选择${NC}"
                read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
                ;;
        esac
    done
}
# 脚本入口
if [ "$(id -u)" -eq 0 ]; then
    echo -e "${RED}警告:您正在以root用户身份运行此脚本${NC}"
    read -p "$(echo -e ${YELLOW}'是否继续?(y/N): '${NC})" root_confirm
    if [[ ! $root_confirm =~ [Yy] ]]; then
        echo -e "${GREEN}已退出程序${NC}"
        exit 0
    fi
fi
main_menu



2,加密脚本方法,使用 gzexe 工具加密

gzexe 是系统自带的工具,使用简单但安全性稍低。

加密脚本‌:


gzexe your_script.sh

加密后原文件会被备份为 your_script.sh~。



3,创建桌面快捷方式

为了让加密后的脚本更方便使用,你可以在桌面创建一个 .desktop 文件:

在 ~/Desktop/ 目录下创建文件,例如 clean_folder.desktop

文件内容如下:

[Desktop Entry]
Version=1.0
Type=Application
Name=清理文件夹
Comment=安全清理指定目录
Exec=/path/to/your_encrypted_script
Icon=utility
Terminal=true

记得给这个文件添加可执行权限:chmod +x ~/Desktop/clean_folder.desktop


浏览7 评论0
返回
目录
返回
首页
Openeuler2203安装Firefox linux 最新版本