给我用shell写几个常用的linux脚本
时间: 2023-06-30 20:26:37 浏览: 109
好的,下面是几个常用的 Linux 脚本,使用 Shell 编写实现:
1. 自动备份脚本:
```bash
#!/bin/bash
# 备份目录
backup_dir=/path/to/backup
# 数据库信息
db_host=localhost
db_user=root
db_password=123456
db_name=mydb
# 备份文件名
backup_file=backup-$(date +%Y%m%d%H%M%S).tar.gz
# 打包文件
tar -czf $backup_dir/$backup_file /path/to/backup
# 备份数据库
mysqldump -h$db_host -u$db_user -p$db_password $db_name > $backup_dir/$db_name.sql
# 打包数据库
tar -czf $backup_dir/$db_name-$(date +%Y%m%d%H%M%S).tar.gz $backup_dir/$db_name.sql
# 上传备份文件
scp $backup_dir/$backup_file user@remote:/path/to/backup
scp $backup_dir/$db_name-*.tar.gz user@remote:/path/to/backup
# 清理备份文件
find $backup_dir -name "backup-*" -mtime +7 -exec rm {} \;
find $backup_dir -name "$db_name-*.tar.gz" -mtime +7 -exec rm {} \;
```
该脚本将指定目录和数据库备份到本地,并使用 scp 命令将备份文件上传到远程服务器。最后,使用 find 命令清理过期的备份文件。
2. 自动清理脚本:
```bash
#!/bin/bash
# 清理目录
clean_dir=/path/to/clean
# 清理时间
clean_time=7
# 清理过期文件
find $clean_dir -type f -mtime +$clean_time -exec rm {} \;
```
该脚本将指定目录中的过期文件清理掉,根据实际需要修改清理时间。
3. 自动部署脚本:
```bash
#!/bin/bash
# 代码仓库
code_repo=git@github.com:username/repo.git
# 代码目录
code_dir=/path/to/code
# 构建命令
build_cmd="mvn clean package"
# 服务器信息
server=user@server:/path/to/deploy
# 拉取代码
git clone $code_repo $code_dir
# 构建代码
cd $code_dir && $build_cmd
# 上传代码
scp $code_dir/target/*.jar $server
# 启动服务
ssh $server "nohup java -jar /path/to/deploy/*.jar > /dev/null 2>&1 &"
```
该脚本使用 Git 拉取代码,使用 Maven 编译代码,并使用 scp 命令将编译后的代码上传到服务器。最后,使用 ssh 命令启动服务。
4. 自动监控脚本:
```bash
#!/bin/bash
# 联系人
contact=foo@example.com
# 系统负载
load_avg=$(uptime | awk '{print $10}')
# 进程状态
process_status=$(ps -ef | grep nginx | grep -v grep)
# 网络连接
network_status=$(netstat -an | grep 80 | grep ESTABLISHED)
# 发送邮件
if [ $(echo "$load_avg > 1.0" | bc) -eq 1 ] || [ -z "$process_status" ] || [ -z "$network_status" ];
then
echo "Warning: system load is high or nginx process is not running or network connection is not established" | mail -s "Server Status Alert" $contact
fi
```
该脚本定期检查系统负载、进程状态和网络连接,并根据检查结果发送邮件报警。
以上是几个常用的 Linux 脚本,使用 Shell 编写实现,可以根据实际需求修改脚本内容。
阅读全文