引言
Shell脚本是一种自动化任务的脚本语言,可以用于批量处理、系统管理、快速部署等任务。本文将介绍一些实用的Shell脚本示例,帮助您更好地了解和利用Shell脚本。
脚本示例
1. 目录备份脚本
#!/bin/bash
# 定义备份文件名
backup_filename="backup_$(date +'%Y%m%d%H%M%S').tar.gz"
# 定义备份目录
backup_dir="/path/to/backup"
# 定义待备份的目录
source_dir="/path/to/source"
# 备份源目录
tar -zcvf "$backup_dir/$backup_filename" "$source_dir"
# 删除过期备份 (保留最近30个备份)
ls -t "$backup_dir" | tail -n +31 | xargs -I {} rm "$backup_dir/{}
2. 域名解析检测脚本
#!/bin/bash
# 定义待检测的域名列表
domain_list=("example1.com" "example2.com" "example3.com")
# 循环检测域名解析
for domain in "${domain_list[@]}"
do
ip=$(dig +short "$domain")
if [[ -z $ip ]]; then
echo "域名 $domain 解析失败"
else
echo "域名 $domain 解析成功,IP地址为 $ip"
fi
done
3. 文件监控脚本
#!/bin/bash
# 定义监控的文件
file_to_monitor="/path/to/file"
# 获取文件的初始修改时间
initial_mtime=$(stat -c %Y "$file_to_monitor")
# 循环检测文件是否被修改
while true
do
current_mtime=$(stat -c %Y "$file_to_monitor")
if [[ $current_mtime -gt $initial_mtime ]]; then
echo "文件 $file_to_monitor 被修改"
initial_mtime=$current_mtime
fi
sleep 10
done
结论
本文介绍了几个实用的Shell脚本示例,涵盖了备份、域名解析检测和文件监控等常见场景。通过学习和使用Shell脚本,您可以更加方便地自动化各种任务,并提高工作效率。希望本文对您有所帮助!