常用脚本让你事半功倍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用脚本让你事半功倍相关的知识,希望对你有一定的参考价值。

自动备份

该脚本可以用于自动备份指定目录中的文件,以保护数据的安全性。该脚本可以设置备份周期、备份目录、备份文件名等参数,可以使用tar命令进行文件压缩和归档。

#!/bin/bash

# 备份目录
backup_dir="/path/to/backup/dir"

# 被备份的目录
source_dir="/path/to/source/dir"

# 备份文件名,包括日期时间
backup_file_name="$(date +%Y-%m-%d_%H-%M-%S).tar.gz"

# 备份周期(每天备份一次)
backup_period="daily"

# 创建备份目录(如果不存在)
mkdir -p "$backup_dir"

# 根据备份周期,判断是否需要备份
if [[ "$backup_period" == "daily" ]]; then
if [[ "$(date +%H)" != "00" ]]; then
echo "不需要备份"
exit 0
fi
elif [[ "$backup_period" == "weekly" ]]; then
if [[ "$(date +%u)" != "1" ]]; then
echo "不需要备份"
exit 0
fi
elif [[ "$backup_period" == "monthly" ]]; then
if [[ "$(date +%d)" != "01" ]]; then
echo "不需要备份"
exit 0
fi
else
echo "无效的备份周期"
exit 1
fi

# 使用tar命令进行压缩和归档
tar -czf "$backup_dir/$backup_file_name" "$source_dir"

# 输出备份完成信息
echo "备份完成:$backup_dir/$backup_file_name"

系统监控

该脚本可以用于监控系统的各项指标,例如CPU使用率、内存使用率、磁盘使用率等,并在达到阈值时发送警报。该脚本可以使用top、free、df等命令获取系统信息,并使用mail命令发送邮件警报。

#!/bin/bash

# 邮件接收者地址
recipient="user@example.com"

# CPU 使用率阈值(百分比)
cpu_threshold=80

# 内存使用率阈值(百分比)
mem_threshold=80

# 磁盘使用率阈值(百分比)
disk_threshold=80

# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk print $2 + $4)

# 获取内存使用率
mem_usage=$(free | awk /Mem/printf("%d"), $3/$2*100)

# 获取磁盘使用率
disk_usage=$(df -h / | awk /\\//print $(NF-1) | sed s/%//)

# 判断是否需要发送警报
if (( $(echo "$cpu_usage > $cpu_threshold" | bc -l) )); then
mail -s "CPU 使用率过高" "$recipient" <<< "CPU 使用率:$cpu_usage%"
fi

if (( $(echo "$mem_usage > $mem_threshold" | bc -l) )); then
mail -s "内存使用率过高" "$recipient" <<< "内存使用率:$mem_usage%"
fi

if (( $(echo "$disk_usage > $disk_threshold" | bc -l) )); then
mail -s "磁盘使用率过高" "$recipient" <<< "磁盘使用率:$disk_usage%"
fi

数据库备份

该脚本可以用于自动备份数据库中的数据,以保护数据的安全性。该脚本可以使用mysqldump命令备份MySQL数据库,或使用pg_dump命令备份PostgreSQL数据库,还可以设置备份周期、备份目录、备份文件名等参数。

#!/bin/bash

# MySQL 用户名和密码
mysql_user="your_username"
mysql_password="your_password"

# 备份文件名(使用当前日期作为后缀)
backup_file="backup-$(date +%F).sql"

# 备份目录
backup_dir="/path/to/backup/dir"

# 执行备份
mysqldump -u "$mysql_user" -p"$mysql_password" --all-databases > "$backup_dir/$backup_file"

自动清理

该脚本可以用于定期清理系统中的临时文件、日志文件、无用文件等,以释放磁盘空间。该脚本可以使用find命令查找目标文件,并使用rm命令删除文件。

#!/bin/bash

# 清理目录
clean_dir="/path/to/clean/dir"

# 清理文件类型
clean_filetypes="*.log *.tmp *.bak"

# 清理文件的最后修改时间(单位:天)
clean_days=7

# 查找并删除目标文件
find "$clean_dir" -name "$clean_filetypes" -mtime +$clean_days -exec rm \\;

网络监控

该脚本可以用于监控网络的连通性、带宽、延迟等指标,以判断网络是否正常工作。该脚本可以使用ping、traceroute、curl等命令测试网络,还可以使用crontab命令定时运行。

#!/bin/bash

# 监控目标IP地址
target_ip="192.168.1.1"

# ping测试参数
ping_count=5
ping_interval=1

# curl测试参数
curl_timeout=5

# 运行ping测试
ping_result=$(ping -c $ping_count -i $ping_interval $target_ip)

# 检查ping测试结果
if echo "$ping_result" | grep -q "100% packet loss"; then
echo "Ping测试失败:目标IP地址不可达。"
else
# 提取ping延迟信息
ping_delay=$(echo "$ping_result" | tail -1 | awk -F / print $5)

# 运行curl测试
curl_result=$(curl -s -m $curl_timeout -w "%speed_download\\n" "http://$target_ip/")

# 检查curl测试结果
if [ -z "$curl_result" ]; then
echo "Curl测试失败:无法访问目标IP地址。"
else
# 提取curl带宽信息
curl_speed=$(echo "$curl_result" | tail -1)

# 输出测试结果
echo "Ping测试成功,延迟为$ping_delay ms。"
echo "Curl测试成功,带宽为$curl_speed B/s。"
fi
fi

应用监控

该脚本可以用于监控应用程序的运行状态、响应时间、内存使用等指标,以保证应用程序的稳定性和性能。该脚本可以使用curl、ab、ps等命令获取应用程序的状态和信息。

#!/bin/bash

# 目标HTTP服务的URL
url="http://example.com/"

# 测试次数
n=10

# 循环测试
for ((i=1; i<=n; i++))
do
# 获取当前时间戳
start=$(date +%s.%N)

# 发送HTTP请求并获取响应状态码
response=$(curl -sL -w "%http_code" "$url" -o /dev/null)

# 获取响应时间
end=$(date +%s.%N)
elapsed=$(echo "$end - $start" | bc)

# 输出测试结果
echo "[$(date)] Response code: $response, Elapsed time: $elapsed seconds"

# 等待1秒后再次测试
sleep 1
done

在这个示例中,首先定义了目标HTTP服务的URL和测试次数。然后使用for循环发送HTTP请求,并使用curl命令获取响应状态码和响应时间。最后输出测试结果,并使用sleep命令等待1秒后再次测试。

您可以根据需要修改示例中的URL、测试次数、命令参数等,以适应您的实际需求。例如,可以添加监控内存使用的命令、使用其他监控工具等。

搜索替换

该脚本可以用于在指定目录下搜索指定的关键字,并将其替换为新的内容。可以使用grep命令查找目标文件,使用sed命令进行替换。

#!/bin/bash

# 指定要搜索的目录
dir="/home/user/project"

# 指定要搜索的关键字和替换内容
search="old_string"
replace="new_string"

# 在指定目录下搜索关键字,并将其替换为新内容
find "$dir" -type f -exec sed -i "s/$search/$replace/g" +

文件压缩

该脚本可以用于将指定目录下的文件进行压缩,以节省磁盘空间。可以使用tar命令进行文件压缩和归档。

#!/bin/bash

# 指定要压缩的目录
dir="/home/user/project"

# 指定要压缩的文件名
filename="backup_$(date +%Y-%m-%d_%H%M%S).tar.gz"

# 压缩目录并保存为指定的文件名
tar -czvf "$filename" "$dir"

以上是关于常用脚本让你事半功倍的主要内容,如果未能解决你的问题,请参考以下文章

掌握这些浏览器快捷键,让你事半功倍!

代码编辑效率太低?常用Python IDE快捷键,让你事半功倍!

代码编辑效率太低?常用Python IDE快捷键,让你事半功倍!

全网最全正则表达式总结,让你的工作效率事半功倍,赶快收藏

Linux常用Shell脚本

Linux常用shell脚本