如何写一个脚本启动时自动优化

wen 实用脚本 2

本文目录导读:

如何写一个脚本启动时自动优化

  1. Windows 系统
  2. Linux 系统
  3. macOS 系统
  4. 通用 Python 版本
  5. 注册自启动的方法
  6. 注意事项

Windows 系统

使用任务计划程序

@echo off
:: 优化脚本 - 保存为 optimize.bat
:: 关闭不必要的服务
net stop "SysMain" 2>nul
net stop "Windows Search" 2>nul
:: 清理临时文件
del /f /s /q %temp%\*.* 2>nul
del /f /s /q C:\Windows\Temp\*.* 2>nul
:: 清理DNS缓存
ipconfig /flushdns
:: 磁盘清理
cleanmgr /sagerun:1

PowerShell 版本

# 保存为 optimize.ps1
# 优化设置
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 关闭动画效果
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Value ([byte[]](0x90,0x12,0x03,0x80,0x10,0x00,0x00,0x00))
# 清理系统缓存
Clear-DnsClientCache
Remove-Item "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
# 优化服务
Stop-Service -Name "SysMain" -Force -ErrorAction SilentlyContinue
Set-Service -Name "SysMain" -StartupType Disabled

Linux 系统

使用 systemd 服务

#!/bin/bash
# 保存为 /usr/local/bin/optimize.sh
# 系统优化
echo "执行系统优化..."
# 清理缓存
sync && echo 3 > /proc/sys/vm/drop_caches
# 优化内核参数
echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf
# 关闭不必要的服务
systemctl stop cups-browsed 2>/dev/null
systemctl disable cups-browsed 2>/dev/null
# 清理日志
journalctl --vacuum-time=7d
# 创建 systemd 服务文件
cat > /etc/systemd/system/system-optimize.service << EOF
[Unit]
Description=System Optimization Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/optimize.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
# 启用服务
systemctl daemon-reload
systemctl enable system-optimize.service

使用 crontab

#!/bin/bash
# 保存为 ~/optimize.sh
# 添加到 crontab
# crontab -e
# @reboot /home/user/optimize.sh
echo "系统优化脚本运行中..."
# 设置CPU性能模式
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 清理内存缓存
sync
echo 3 > /proc/sys/vm/drop_caches
# 优化网络
echo "net.core.rmem_max = 134217728" >> /etc/sysctl.conf
echo "net.core.wmem_max = 134217728" >> /etc/sysctl.conf

macOS 系统

使用 LaunchDaemon

#!/bin/bash
# 保存为 ~/Scripts/optimize.sh
# macOS优化脚本
echo "macOS优化中..."
# 清理缓存
sudo purge
# 清理系统日志
sudo rm -rf /Library/Logs/*.log 2>/dev/null
# 关闭不必要的服务
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist 2>/dev/null
# 创建 plist 文件
cat > ~/Library/LaunchAgents/com.user.optimize.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.optimize</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/username/Scripts/optimize.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
EOF
# 加载服务
launchctl load ~/Library/LaunchAgents/com.user.optimize.plist

通用 Python 版本

#!/usr/bin/env python3
# 保存为 optimize.py
import os
import sys
import platform
import subprocess
def optimize_windows():
    """Windows优化"""
    # 清理临时文件
    temp_paths = [
        os.environ.get('TEMP', ''),
        os.environ.get('TMP', ''),
        'C:\\Windows\\Temp'
    ]
    for path in temp_paths:
        if os.path.exists(path):
            for file in os.listdir(path):
                try:
                    file_path = os.path.join(path, file)
                    if os.path.isfile(file_path):
                        os.remove(file_path)
                except:
                    pass
    # 执行系统命令
    subprocess.run(['ipconfig', '/flushdns'], capture_output=True)
def optimize_linux():
    """Linux优化"""
    # 清理缓存
    os.system('sync && echo 3 > /proc/sys/vm/drop_caches')
    # 设置swappiness
    os.system('echo 10 > /proc/sys/vm/swappiness')
def optimize_macos():
    """macOS优化"""
    os.system('sudo purge')
def main():
    """主函数"""
    system = platform.system()
    print(f"在 {system} 系统上运行优化...")
    if system == "Windows":
        optimize_windows()
    elif system == "Linux":
        optimize_linux()
    elif system == "Darwin":  # macOS
        optimize_macos()
    print("优化完成!")
if __name__ == "__main__":
    main()

注册自启动的方法

Windows

:: 添加到启动文件夹
copy optimize.bat "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\"

Linux (使用 systemd)

# 创建服务并启用
sudo systemctl enable optimize.service
sudo systemctl start optimize.service

macOS

# 使用 LaunchAgent
launchctl load ~/Library/LaunchAgents/com.user.optimize.plist

注意事项

  1. 权限问题:某些操作需要管理员/root权限
  2. 谨慎测试:先在测试环境验证脚本
  3. 备份重要数据:优化操作前做好备份
  4. 日志记录:添加日志功能以便调试
  5. 错误处理:添加异常捕获机制

您可以根据具体需求选择合适的脚本,并根据系统环境进行调整。

抱歉,评论功能暂时关闭!