
1. Ubuntu系统命令操作基础认知第一次接触Ubuntu终端时那个闪烁的光标就像面对一扇未知的大门。作为Linux发行版中最亲民的存在Ubuntu通过命令行提供了对系统最直接的控制能力。与Windows的图形化操作不同命令行操作更像是与系统进行专业对话每个命令都是精准的指令。终端Terminal是Ubuntu系统的核心交互界面通过CtrlAltT快捷键即可快速唤出。这个黑底白字的窗口可能初看简陋但却是系统管理的利器。所有命令都遵循命令 [选项] [参数]的基本结构例如ls -l /home这个命令中ls是列出目录内容的基础命令-l表示以详细列表格式显示/home则是要查看的目标路径。提示在终端中Tab键可以自动补全命令和文件名连续按两次Tab会显示所有可能的补全选项这个技巧能极大提升命令输入效率。系统命令大致可分为以下几类文件管理ls/cd/mkdir等系统监控top/ps/free等网络配置ifconfig/ping等软件管理apt/dpkg等权限管理chmod/chown等掌握这些命令后你会发现很多在图形界面需要多次点击的操作在终端只需一行命令就能快速完成。比如要查找某个文件图形界面需要打开文件管理器逐个目录查看而终端只需find / -name filename就能全盘搜索。2. 文件与目录管理命令精要2.1 基础导航与查看pwd命令永远告诉你当前所在位置就像在迷宫中给你一个定位器。而ls命令则是查看目录内容的瑞士军刀它的几个常用变体ls # 简单列出当前目录可见文件 ls -a # 显示所有文件(包括隐藏文件Linux中.开头的文件为隐藏文件) ls -l # 长格式显示包含权限、所有者、大小等详细信息 ls -lh # 人类可读的文件大小显示(自动转换为KB/MB等单位) ls -t # 按修改时间排序最近修改的排在最前cd命令用于切换目录比图形界面双击文件夹更高效cd ~ # 返回用户主目录(/home/用户名) cd .. # 返回上级目录 cd - # 在上一个目录和当前目录间切换 cd /usr/local # 绝对路径跳转2.2 文件操作四件套创建、复制、移动和删除是文件管理的四大基础操作mkdir project{1..3} # 批量创建project1, project2, project3目录 cp file.txt backup/ # 复制文件到backup目录 cp -r dir1 dir2 # 递归复制整个目录 mv old.txt new.txt # 文件重命名 mv file.txt ~/Documents/ # 移动文件到指定目录 rm temp.log # 删除文件 rm -rf old_dir # 强制递归删除目录及其内容警告rm -rf命令极其危险特别是以root权限执行时。建议先使用ls确认要删除的内容再执行删除操作。可以在~/.bashrc中添加alias rmrm -i让rm命令每次删除前询问确认。2.3 高级查找与统计find命令的强大超乎想象它能根据各种条件定位文件find /var/log -name *.log -mtime -7 # 查找/var/log下7天内修改过的log文件 find ~ -size 10M -exec ls -lh {} \; # 查找主目录下大于10MB的文件并显示详情du和df是磁盘空间管理的黄金组合du -sh * # 显示当前目录下各文件/目录的总大小 du -h --max-depth1 # 显示当前目录下一级子目录的大小 df -h # 显示所有挂载点的磁盘使用情况3. 系统管理与监控命令3.1 进程管理实战top命令是系统监控的仪表盘实时显示CPU、内存使用情况和进程列表。按下M按内存排序P按CPU排序q退出。更现代的替代品是htop需额外安装它提供了彩色界面和鼠标支持。进程管理的核心命令ps aux | grep nginx # 查找nginx相关进程 kill -9 1234 # 强制终止PID为1234的进程 pkill -f python.*app # 终止所有匹配模式的进程 nice -n 10 command # 以较低优先级(10)运行命令 renice 5 -p 1234 # 修改已运行进程的优先级3.2 系统信息获取了解你的系统是管理的第一步uname -a # 显示内核版本和系统架构 lsb_release -a # 显示Ubuntu发行版信息 lscpu # 显示CPU详细信息 free -h # 以易读格式显示内存使用情况 uptime # 显示系统运行时间和平均负载/proc虚拟文件系统包含了丰富的系统运行时信息cat /proc/meminfo # 内存详情 cat /proc/cpuinfo # CPU详情 cat /proc/loadavg # 系统负载3.3 硬件设备信息Ubuntu提供了多种硬件检测工具lspci # 列出所有PCI设备(如显卡、网卡) lsusb # 列出USB设备 lshw # 显示完整硬件信息(需要sudo权限) inxi -Fxz # 综合硬件信息报告(需安装inxi包) hdparm -i /dev/sda # 显示硬盘信息 smartctl -a /dev/sda # 查看硬盘SMART状态(需安装smartmontools)4. 软件包管理与系统维护4.1 APT包管理精髓APT(Advanced Package Tool)是Ubuntu的包管理系统其核心命令构成了软件管理的基石sudo apt update # 更新可用软件包列表(非升级软件本身) sudo apt upgrade # 升级所有可升级的软件包 sudo apt full-upgrade # 智能处理依赖关系的升级 sudo apt install vim # 安装vim编辑器 sudo apt remove vim # 移除vim但保留配置文件 sudo apt purge vim # 完全移除vim及其配置文件 sudo apt autoremove # 自动移除不再需要的依赖包查找软件包的高级技巧apt search ^python3 # 搜索名称以python3开头的包 apt show nginx # 显示nginx包的详细信息 apt depends firefox # 查看firefox的依赖关系 apt rdepends python3 # 查看哪些包依赖python34.2 源码编译安装指南当某些软件不在官方仓库时需要源码编译安装# 典型编译安装流程 wget http://example.com/app.tar.gz tar -xzf app.tar.gz cd app/ ./configure --prefix/usr/local # 配置安装参数 make -j$(nproc) # 并行编译(使用所有CPU核心) sudo make install # 安装到系统4.3 系统清理与维护保持系统整洁能提升性能和稳定性sudo apt clean # 清理下载的.deb安装包 sudo apt autoclean # 仅清理过期的安装包 journalctl --vacuum-size200M # 限制系统日志大小为200MB sudo rm -rf /tmp/* # 清理/tmp临时目录(谨慎操作)定期维护任务# 检查损坏的软件包 sudo dpkg --configure -a sudo apt install -f # 重建软件包数据库 sudo apt-get check5. 网络配置与故障排查5.1 基础网络命令网络连接是现代系统的生命线这些命令能帮你诊断问题ping -c 4 google.com # 发送4个ping包测试连通性 traceroute google.com # 显示到目标的路由路径 mtr google.com # 实时路由跟踪工具(需安装mtr) netstat -tulnp # 显示所有监听端口及对应程序 ss -plnt # netstat的现代替代品显示TCP连接 whois domain.com # 查询域名注册信息 dig short google.com # DNS查询的瑞士军刀5.2 网络配置管理Ubuntu的网络配置主要存储在/etc/netplan/目录下17.10及以后版本# 查看当前网络接口信息 ip addr show ip link show # 临时配置IP地址(重启失效) sudo ip addr add 192.168.1.100/24 dev eth0 # 永久配置需编辑netplan文件 sudo nano /etc/netplan/01-netcfg.yaml典型Netplan配置示例network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]应用配置sudo netplan apply5.3 防火墙与安全UFW(Uncomplicated Firewall)是Ubuntu的防火墙简化工具sudo ufw enable # 启用防火墙 sudo ufw default deny # 默认拒绝所有入站连接 sudo ufw allow 22/tcp # 允许SSH连接 sudo ufw allow 80,443/tcp # 允许HTTP/HTTPS sudo ufw status numbered # 显示带编号的规则列表 sudo ufw delete 2 # 删除编号为2的规则更高级的防火墙配置可以使用iptablessudo iptables -L -v # 查看当前规则 # 允许已建立的连接 sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 保护端口扫描 sudo iptables -N PORTSCAN sudo iptables -A PORTSCAN -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j RETURN sudo iptables -A PORTSCAN -j DROP6. 用户权限与系统服务6.1 用户与组管理多用户系统需要严格的权限控制sudo adduser newuser # 创建新用户(交互式) sudo deluser olduser # 删除用户 sudo usermod -aG sudo username # 将用户加入sudo组 sudo passwd username # 更改用户密码 groups username # 查看用户所属组 # 批量创建用户 for user in user{1..5}; do sudo adduser --disabled-password --gecos $user; done6.2 文件权限深度解析Linux权限系统基于三组权限所有者(user)、所属组(group)和其他人(other)。使用ls -l查看的权限字符串如-rwxr-xr--分解为第一个字符文件类型(-普通文件d目录l链接等)接下来三组rwx分别对应所有者、组和其他人的读(r)、写(w)、执行(x)权限权限修改命令chmod ux script.sh # 给所有者添加执行权限 chmod 755 dir # rwxr-xr-x权限(常用目录权限) chmod 644 file.txt # rw-r--r--权限(常用文件权限) chown user:group file # 同时修改所有者和所属组专业技巧对于需要执行但不想被看到的脚本可以设置chmod 711 script.sh这样其他人可以执行但无法读取内容。对于共享目录设置chmod 1777 /shared(粘滞位)允许所有人创建文件但只能删除自己的文件。6.3 系统服务管理Ubuntu使用systemd管理系统服务sudo systemctl start nginx # 启动服务 sudo systemctl stop nginx # 停止服务 sudo systemctl restart nginx # 重启服务 sudo systemctl enable nginx # 设置开机自启 sudo systemctl disable nginx # 取消开机自启 sudo systemctl status nginx # 查看服务状态 journalctl -u nginx -f # 查看服务日志(实时)创建自定义系统服务示例创建服务文件/etc/systemd/system/myapp.service[Unit] DescriptionMy Custom Application Afternetwork.target [Service] ExecStart/usr/local/bin/myapp WorkingDirectory/var/lib/myapp Usermyapp Groupmyapp Restarton-failure [Install] WantedBymulti-user.target启用服务sudo systemctl daemon-reload sudo systemctl enable --now myapp7. 文本处理与脚本自动化7.1 文本处理三剑客grep、sed和awk是文本处理的三大神器# grep示例查找包含error的日志行并显示前后3行 grep -A 3 -B 3 error /var/log/syslog # sed示例替换文件中的所有旧字符串为新字符串 sed -i s/old/new/g file.txt # awk示例统计nginx访问日志中每个IP的访问次数 awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -nr7.2 正则表达式实战正则表达式是文本处理的超能力# 匹配Email地址 grep -E \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\b file.txt # 提取日志中的时间戳 sed -nE s/.*([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}).*/\1/p logfile # 使用awk格式化输出 df -h | awk /\/$/ {printf 根分区使用率: %s (可用%s)\n, $5, $4}7.3 Shell脚本进阶编写健壮的shell脚本需要注意#!/bin/bash # 脚本模板示例 set -euo pipefail # 严格模式错误退出、未定义变量报错、管道错误检测 readonly SCRIPT_DIR$(cd $(dirname ${BASH_SOURCE[0]}) pwd) readonly LOG_FILE/var/log/${0##*/}.log function log() { local level$1 shift echo [$(date %Y-%m-%d %H:%M:%S)] [$level] $ | tee -a $LOG_FILE } function main() { # 检查是否为root if [[ $EUID -ne 0 ]]; then log ERROR 此脚本需要root权限 exit 1 fi # 检查参数 if [[ $# -lt 1 ]]; then log ERROR 用法: $0 参数 exit 2 fi log INFO 脚本开始执行参数: $ # 主逻辑 local input_file$1 if [[ ! -f $input_file ]]; then log ERROR 输入文件不存在: $input_file exit 3 fi # 处理文件 local temp_file$(mktemp) grep -v ^# $input_file $temp_file log INFO 处理完成结果保存在: $temp_file } main $8. 实用技巧与高级用法8.1 终端生产力提升这些技巧能让命令行工作更高效# 历史命令搜索 CtrlR # 反向搜索历史命令 CtrlS # 正向搜索(可能需要先执行stty -ixon) # 作业控制 command # 后台运行 jobs # 查看后台作业 fg %1 # 将作业1调到前台 bg %2 # 继续在后台运行作业2 CtrlZ # 暂停当前前台作业 # 使用screen/tmux保持会话 sudo apt install tmux tmux new -s mysession # 创建新会话 tmux attach -t mysession # 重新连接会话 # 在tmux中Ctrlb d 分离会话8.2 命令组合与重定向组合命令能创造无限可能# 管道传递数据 cat access.log | awk {print $1} | sort | uniq -c | sort -nr | head -10 # 重定向技巧 command output.txt 21 # 标准输出和错误都重定向到文件 command log.txt 21 # 追加模式 command input.txt # 从文件读取输入 diff (ls dir1) (ls dir2) # 进程替换比较两个目录 # 同时输出到屏幕和文件 command | tee output.log8.3 系统性能调优监控和优化系统性能# 实时监控 sudo apt install htop iotop iftop nmon htop # 交互式进程查看器 iotop # I/O使用情况监控 iftop # 网络带宽监控 nmon # 综合性能监控工具 # 性能分析 perf stat ls # 简单命令性能统计 perf record -g ls # 记录性能数据 perf report # 分析记录的数据 # 内核参数调优 sudo sysctl -w vm.swappiness10 # 减少交换分区使用 sudo sysctl -w vm.vfs_cache_pressure50 # 调整文件系统缓存9. 开发环境配置9.1 编译工具链搭建基础开发环境# 安装构建工具链 sudo apt install build-essential cmake git # 安装调试工具 sudo apt install gdb valgrind strace ltrace # Python开发环境 sudo apt install python3 python3-pip python3-venv python3 -m venv myenv # 创建虚拟环境 source myenv/bin/activate # 激活虚拟环境 # C/C开发工具 sudo apt install clang clang-tools libboost-all-dev9.2 容器化开发使用Docker简化开发环境配置# 安装Docker sudo apt install docker.io sudo systemctl enable --now docker sudo usermod -aG docker $USER # 将当前用户加入docker组 # 常用Docker命令 docker ps -a # 列出所有容器 docker images # 列出镜像 docker build -t myapp . # 构建镜像 docker run -it --rm ubuntu bash # 运行交互式容器 # Docker Compose示例 sudo apt install docker-compose cat docker-compose.yml EOF version: 3 services: web: image: nginx:alpine ports: - 8080:80 db: image: postgres:13 environment: POSTGRES_PASSWORD: example EOF docker-compose up -d9.3 版本控制集成Git是现代开发的标配# 基础Git配置 git config --global user.name Your Name git config --global user.email your.emailexample.com git config --global core.editor vim git config --global pull.rebase true # 常用Git工作流 git clone https://github.com/user/repo.git git checkout -b feature-branch git add . git commit -m 描述性提交信息 git push origin feature-branch # 高级技巧 git rebase -i HEAD~3 # 交互式重写最近3个提交 git stash # 临时保存未提交的更改 git bisect start # 二分查找引入bug的提交 git log --graph --oneline # 图形化显示提交历史10. 安全加固与故障恢复10.1 系统安全基础加固Ubuntu系统的基本措施# 自动安全更新 sudo apt install unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades # SSH安全配置 sudo nano /etc/ssh/sshd_config # 修改以下参数 # Port 2222 (非标准端口) # PermitRootLogin no # PasswordAuthentication no (使用密钥认证) # MaxAuthTries 3 sudo systemctl restart sshd # 安装基础安全工具 sudo apt install fail2ban rkhunter lynis sudo lynis audit system # 系统安全审计10.2 备份策略实施可靠的备份是系统管理的安全网# 使用rsync进行增量备份 rsync -avz --delete /home/user/ backup-server:/backups/user/ # 使用tar创建完整备份 tar -cvpzf /backups/full-backup-$(date %F).tar.gz \ --exclude/backups \ --exclude/proc \ --exclude/tmp \ --exclude/mnt \ --exclude/dev \ --exclude/sys \ / # 自动化备份脚本示例 #!/bin/bash BACKUP_DIR/backups KEEP_DAYS30 TIMESTAMP$(date %F_%H-%M-%S) # 创建每日备份 tar -cvpzf $BACKUP_DIR/daily-$TIMESTAMP.tar.gz \ --listed-incremental$BACKUP_DIR/snapshot.file \ /home /etc /var/www # 每周日创建完整备份 if [ $(date %u) -eq 7 ]; then tar -cvpzf $BACKUP_DIR/full-$TIMESTAMP.tar.gz \ --exclude$BACKUP_DIR \ /home /etc /var/www fi # 清理旧备份 find $BACKUP_DIR -type f -name *.tar.gz -mtime $KEEP_DAYS -delete10.3 系统救援与修复当系统无法启动时的恢复方法使用Ubuntu Live USB启动挂载原系统分区sudo mkdir /mnt/root sudo mount /dev/sda1 /mnt/root # 假设根分区在sda1 sudo mount --bind /dev /mnt/root/dev sudo mount --bind /proc /mnt/root/proc sudo mount --bind /sys /mnt/root/sysChroot到原系统sudo chroot /mnt/root执行修复操作apt install --reinstall ubuntu-desktop # 重新安装桌面环境 dpkg --configure -a # 修复未完成的包配置 grub-install /dev/sda # 重新安装GRUB引导程序 update-grub # 更新GRUB配置11. 图形环境与远程管理11.1 桌面环境定制Ubuntu桌面环境的常用调整# 安装GNOME优化工具 sudo apt install gnome-tweaks # 常用gsettings配置(需在图形会话中执行) gsettings set org.gnome.desktop.interface clock-format 24h gsettings set org.gnome.desktop.interface enable-hot-corners false gsettings set org.gnome.shell.app-switcher current-workspace-only true # 重置特定设置 gsettings reset org.gnome.desktop.interface clock-format11.2 远程桌面方案多种远程访问Ubuntu的方式VNC服务器配置sudo apt install tigervnc-standalone-server vncserver :1 -geometry 1920x1080 -depth 24 # 启动VNC服务器 # 配置密码保存在~/.vnc/passwdX2Go(更适合低速网络)sudo add-apt-repository ppa:x2go/stable sudo apt update sudo apt install x2goserver x2goserver-xsessionSSH X11转发ssh -X userremotehost # 启用X11转发 gedit # 远程运行图形程序11.3 字体与显示优化改善Ubuntu的显示效果# 安装微软核心字体 sudo apt install ttf-mscorefonts-installer # 安装文泉驿字体 sudo apt install fonts-wqy-microhei fonts-wqy-zenhei # 字体渲染配置(编辑/etc/fonts/local.conf) ?xml version1.0? !DOCTYPE fontconfig SYSTEM fonts.dtd fontconfig match targetfont edit nameantialias modeassign booltrue/bool /edit edit namehinting modeassign booltrue/bool /edit edit namehintstyle modeassign consthintslight/const /edit edit namergba modeassign constrgb/const /edit /match /fontconfig12. 虚拟化与云计算集成12.1 KVM虚拟化平台将Ubuntu转变为虚拟化主机# 检查CPU虚拟化支持 egrep -c (vmx|svm) /proc/cpuinfo # 应返回大于0的数字 # 安装KVM及相关工具 sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager # 将用户加入libvirt组 sudo usermod -aG libvirt $(whoami) sudo usermod -aG kvm $(whoami) # 验证安装 virsh list --all创建和管理虚拟机# 使用virt-install创建新VM virt-install \ --name ubuntu-vm \ --ram 2048 \ --disk path/var/lib/libvirt/images/ubuntu-vm.qcow2,size20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu20.04 \ --network bridgevirbr0 \ --graphics spice \ --console pty,target_typeserial \ --cdrom ~/Downloads/ubuntu-20.04.3-live-server-amd64.iso # 常用virsh命令 virsh start ubuntu-vm # 启动VM virsh shutdown ubuntu-vm # 正常关闭 virsh destroy ubuntu-vm # 强制关闭 virsh edit ubuntu-vm # 编辑VM配置 virsh console ubuntu-vm # 连接控制台12.2 云初始化配置准备Ubuntu云镜像# 安装cloud-image-utils sudo apt install cloud-image-utils # 创建cloud-init配置 cat user-data EOF #cloud-config users: - name: ubuntu ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2E... userhost sudo: [ALL(ALL) NOPASSWD:ALL] groups: sudo shell: /bin/bash EOF # 生成seed.iso cloud-localds seed.iso user-data # 使用cloud-init启动VM virt-install \ --name cloud-vm \ --ram 2048 \ --disk path/var/lib/libvirt/images/cloud-vm.qcow2,size20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu20.04 \ --network bridgevirbr0 \ --graphics none \ --console pty,target_typeserial \ --import \ --disk pathseed.iso,devicecdrom \ --boot hd12.3 AWS/Azure集成将Ubuntu与公有云集成# AWS CLI配置 sudo apt install awscli aws configure # 交互式配置访问密钥 # 常用AWS操作 aws ec2 describe-instances aws s3 ls aws rds describe-db-instances # Azure CLI安装 curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash az login # 浏览器登录认证 # 常用Azure操作 az vm list az storage account list az network nsg list13. 性能调优与基准测试13.1 系统性能分析全面评估系统性能# 安装性能分析工具集 sudo apt install sysbench stress-ng phoronix-test-suite # CPU性能测试 sysbench cpu --cpu-max-prime20000 run # 内存性能测试 sysbench memory --memory-block-size1K --memory-total-size10G run # 磁盘I/O测试 sysbench fileio --file-total-size5G prepare sysbench fileio --file-total-size5G --file-test-moderndrw --time300 --max-requests0 run sysbench fileio --file-total-size5G cleanup # 综合压力测试 stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief13.2 内核参数调优优化内核参数提升性能# 查看当前内核参数 sysctl -a | grep vm.swappiness # 临时调整参数 sudo sysctl -w vm.swappiness10 sudo sysctl -w vm.dirty_ratio10 sudo sysctl -w vm.dirty_background_ratio5 # 永久保存配置 echo vm.swappiness 10 | sudo tee -a /etc/sysctl.conf echo vm.dirty_ratio 10 | sudo tee -a /etc/sysctl.conf echo vm.dirty_background_ratio 5 | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 重新加载配置13.3 文件系统优化根据工作负载选择合适文件系统# 比较文件系统性能 sudo apt install bonnie # 测试ext4性能 bonnie -d /mnt/ext4 -s 4G -n 0 -m TEST -f -b # 测试XFS性能 bonnie -d /mnt/xfs -s 4G -n 0 -m TEST -f -b # 测试Btrfs性能 bonnie -d /mnt/btrfs -s 4G -n 0 -m TEST -f -b # 文件系统创建示例 sudo mkfs.ext4 -L Data /dev/sdb1 sudo mkfs.xfs -f /dev/sdb1 sudo mkfs.btrfs -f /dev/sdb114. 日志管理与分析14.1 系统日志架构理解Ubuntu的日志系统# 主要日志文件位置 /var/log/syslog # 主系统日志 /var/log/auth.log # 认证相关日志 /var/log/kern.log # 内核日志 /var/log/dpkg.log # 包管理日志 /var/log/apt/ # APT操作日志 # 使用journalctl查看systemd日志 journalctl -xe # 查看最近错误日志 journalctl -f # 实时跟踪日志 journalctl -u nginx # 查看特定服务的日志 journalctl --since 2023-01-01 --until 2023-01-0214.2 日志轮转配置自定义日志轮转策略# 查看现有轮转配置 ls /etc/logrotate.d/ # 自定义应用日志轮转示例 sudo nano /etc/logrotate.d/myapp # 添加以下内容 /var/log/myapp/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 myapp adm sharedscripts postrotate systemctl restart myapp /dev/null 21 || true endscript } # 手动测试轮转配置 logrotate -d /etc/logrotate.d/myapp # 干运行 logrotate -f /etc/logrotate.d/myapp # 强制执行14.3 高级日志分析使用专业工具分析日志# 安装日志分析工具 sudo apt install logwatch goaccess # 分析Apache/Nginx访问日志 goaccess /var/log/nginx/access.log --log-formatCOMBINED # 使用awk分析SSH登录失败 awk /Failed password/ {print $11} /var/log/auth.log | sort | uniq -c | sort -nr # 使用ELK堆栈(需单独安装) # Filebeat配置示例(/etc/filebeat/filebeat.yml): filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log output.elasticsearch: hosts: [localhost:9200]15. 自动化与配置管理15.1 Cron自动化任务使用cron调度定期任务# 编辑当前用户的crontab crontab -e # 常用cron示例 0 3 * * * /path/to/backup.sh # 每天3点执行备份 */15 * * * * /path/to/monitor.sh # 每15分钟执行监控 0 0 1 * * /path/to/report.sh # 每月1日执行报告 # 系统级cron任务 sudo nano /etc/crontab # 添加如下行 25 6 * * * root test -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.daily ) # 查看cron日志 grep CRON /var/log/syslog15.2 Ansible基础配置使用Ansible管理Ubuntu系统# 安装Ansible sudo apt install ansible # 基础inventory文件(/etc/ansible/hosts) [webservers] web1 ansible_host192.168.1.101 web2 ansible_host192.168.1.102 [dbservers] db1 ansible_host192.168.1.201 # 测试连接 ansible all -m ping -u remoteuser --ask-pass # 常用模块示例 ansible webservers -m apt -a namenginx statepresent -b