Devops工程师必会自动化脚本
1、引言
小屌丝:鱼哥,你说Devops工程师都需要会哪些脚本?
小鱼:你觉得Devops的工作职责是啥?
小屌丝:当然是有一部分工作位 监控磁盘、自动备份、日志轮转等
小鱼:你看,你都知道,那你还问我
小屌丝:(⊙o⊙)…
小鱼:所以啊,你可以先问你自己,如果自己都能回答上来,就不用问别人了
小屌丝:嗯,确实是这样的
小鱼:要不,你把刚刚说的脚本整理一下?
小屌丝:这… 貌似也可以
小鱼:开整,整完了,泡脚去。
小屌丝:嘿嘿~ ~
2、自动化脚本集合
2.1 磁盘监控脚本
磁盘监控作为Devops工程师必须要做的事情,所以,自动化脚本必不可少。
THRESHOLD=80
df -h | awk '{ if($5+0 > THRESHOLD) print $0; }' | while read output;
do
echo "Disk usage alert: $output"
done
2.2 自动备份脚本
自动备份脚本
SOURCE="/path/data"
DEST="/path/backup/location"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
tar -czvf $DEST/backup_$TIMESTAMP.tar.gz $SOURCE
echo "Backup completed: $DEST/backup_$TIMESTAMP.tar.gz"
2.3 SSH秘钥设置
自动设置远程登录SSH秘钥过程,提高安全性
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -q -N ""
ssh-copy-id user@remote_server
echo "SSH key setup completed."
2.4 日志轮转脚本
压缩日志是必须要做的事情,所以,自动化脚本会节省很多时间
LOG_FILE="/path/logfile.log"
BACKUP_DIR="/path/log/backup"
TIMESTAMP=$(date +"%Y%m%d")
mv $LOG_FILE $BACKUP_DIR/log_$TIMESTAMP.log
gzip $BACKUP_DIR/log_$TIMESTAMP.log
touch $LOG_FILE
echo "Log rotation completed."
2.5 自动备份数据库
数据库定期备份,是必不可少。
DB_NAME="database_name"
USER="db_user"
PASSWORD="db_pass"
BACKUP_DIR="/path/backup"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
mysqldump -u $USER -p$PASSWORD $DB_NAME > $BACKUP_DIR/${DB_NAME}_$TIMESTAMP.sql
echo "Database backup completed: $BACKUP_DIR/${DB_NAME}_$TIMESTAMP.sql"
2.6 清理Docker
Docker 容器、镜像和卷会随着时间的推移积累,消耗磁盘空间。
所以,定期Docker是需要做的
docker system prune -af
docker volume prune -f
echo "Docker cleanup completed."
2.7 监控Kubernetes Pod 状态
k8s的状态监控,是必不可少
NAMESPACE="default"
kubectl get pods -n $NAMESPACE
2.8 Git 自动拉取脚本
对于自动化部署流程,此脚本确保从仓库拉取服务器的最新代码
REPO_PATH="/path/repo"
BRANCH="main"
cd $REPO_PATH
git pull origin $BRANCH
echo "Code pulled from $BRANCH branch."
2.9 服务状态检查器
监控关键服务的状态对于系统可靠性至关重要
SERVICE=$1
systemctl is-active --quiet $SERVICE && echo "$SERVICE is running" || echo "$SERVICE is not running"
2.10 自动化系统更新
定期更新系统包对于保持安全性和性能至关重要
echo "Starting system update..."
sudo apt update && sudo apt upgrade -y
echo "System update completed."
3、总结
当前卷的时代,作为技术er,除了要了解开发相关的技术栈,
还需要了解Devops的知识,否则,很容易被“替代”的。
我是小鱼:
- 优快云 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 企业认证金牌面试官;
- 多名企认证讲师&特邀作者等;
- 名企签约职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)评测一等奖获得者;
关注小鱼,学习更多更前沿的Python开发知识相关技术。