【运维】Linux 服务器实战(8):环境部署、备份与 Cron【系列收官】
Linux 服务器实战 · 第 8 篇(收官)
压缩备份、MySQL dump、Cron 定时任务—— 部署收尾 常用命令合集。
1. apt 与 .deb
sudo apt update
sudo apt install -y package
sudo apt remove --purge package
sudo apt autoremove -y
sudo apt-mark hold package # 禁止被 upgrade 升级
wget https://example.com/app_amd64.deb
sudo dpkg -i app_amd64.deb
sudo apt -f install -y # 补依赖
2. 压缩与解压
# tar.gz
tar -zcvf backup.tar.gz /path/to/dir
tar -zxvf backup.tar.gz
tar -zxvf backup.tar.gz -C /target/dir
# zip
zip -r site.zip /var/www/html
unzip site.zip -d /var/www/restore
unzip -l site.zip
3. find 常用
find /var/log -name "*.log" -mtime +30
find /home/backup -mtime +10 -type f -delete
find / -name "my.cnf" 2>/dev/null
4. Cron 定时任务
语法
分 时 日 月 周 命令
* * * * * 每分钟
0 * * * * 每小时整点
30 7 * * * 每天 7:30
*/5 * * * * 每 5 分钟
用户 crontab
crontab -e
crontab -l
crontab -r # 删光当前用户任务,慎用
系统级 /etc/cron.d/
sudo tee /etc/cron.d/mybackup << 'EOF'
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
EOF
sudo chmod 644 /etc/cron.d/mybackup
Cron 日志:
grep CRON /var/log/syslog | tail -20
sudo journalctl -u cron -n 30 --no-pager
5. MySQL 最小运维
sudo systemctl status mysql
sudo systemctl restart mysql
备份(请替换密码与库名):
mysqldump -u root -p DATABASE | gzip > /home/backup/db_$(date +%Y%m%d_%H%M%S).sql.gz
恢复:
gunzip -c backup.sql.gz | mysql -u root -p DATABASE
开启 event scheduler(若需要)在 /etc/mysql/mysql.conf.d/ 对应段加:
[mysqld]
event_scheduler=ON
6. Python / Node 环境(最小)
# Python venv
sudo apt install -y python3-venv python3-pip
python3 -m venv /var/www/app/venv
source /var/www/app/venv/bin/activate
pip install -r requirements.txt
# Node(示例用 NodeSource 或 nvm,按项目文档)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v && npm -v
7. Java 多版本(可选)
sudo apt install -y openjdk-17-jdk
sudo update-alternatives --config java
java -version
8. 关机与重启(复习)
sudo reboot
sudo shutdown -h now
sudo shutdown -r +10
sudo shutdown -c
全系列索引
| 篇 | 标题 | 链接 |
|---|---|---|
| 1 | Ubuntu 30 分钟初始化 | /forum/13/ |
| 2 | SSH / fail2ban | /forum/14/ |
| 3 | 磁盘与 LVM | 见分类列表 |
| 4 | systemd / journal | 见分类列表 |
| 5 | 网络 / ufw | 见分类列表 |
| 6 | 性能监控 | 见分类列表 |
| 7 | 故障诊断 | 见分类列表 |
| 8 | 部署与 Cron(本文) | 本篇 |
建议收藏:第 1、3、7 篇日常最高频。
本篇速查
tar -zcvf bak.tar.gz /path
mysqldump -u USER -p DB | gzip > db.sql.gz
crontab -e
grep CRON /var/log/syslog | tail
Linux 服务器实战系列完结。欢迎在 运维与云原生 分类留言补充你想看的专题(Nginx、Certbot、Docker 等)。