【自动化脚本】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开发知识相关技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值