shell命令批处理具体实例
时间: 2025-01-03 18:33:33 浏览: 10
### Shell 脚本批处理实例
#### 倒计时脚本
倒计时脚本可以用于提醒用户某个事件即将发生的时间。通过循环和`sleep`命令实现定时功能。
```bash
#!/bin/bash
echo "请输入秒数:"
read SECONDS
while [ $SECONDS -gt 0 ]; do
echo "$SECONDS"
sleep 1
: $((SECONDS--))
done
echo "时间到!"
```
此脚本会提示输入秒数并每秒钟打印一次剩余时间直到结束[^2]。
#### 创建用户脚本
批量创建用户的操作可以通过读取文件中的用户名列表来完成,简化了手动逐个添加的工作量。
```bash
#!/bin/bash
FILE="users.txt"
while IFS= read -r line; do
sudo adduser "$line"
done <"$FILE"
```
上述代码片段展示了如何从名为`users.txt`的文件中读取每一行作为新用户的名称,并调用`adduser`命令为每个条目创建账户。
#### 系统资源使用统计脚本
监控服务器性能是一项重要任务,下面这个例子能够收集CPU、内存以及磁盘空间的信息:
```bash
#!/bin/bash
echo "System Usage Report $(date)"
top -b | head -n 5
free -m
df -h
```
这段脚本先显示当前日期,接着分别获取进程状态(`top`)前五行数据、物理内存详情(`free`)及挂载点存储情况(`df`).
#### 数据库备份脚本
对于数据库维护来说定期做备份至关重要。这里给出一个MySQL数据库备份的例子:
```bash
#!/bin/bash
DB_USER="root"
DB_PASSWD="password"
BACKUP_DIR="/path/to/backup/dir/"
mysqldump -u$DB_USER -p$DB_PASSWD --all-databases > ${BACKUP_DIR}$(date +%F).sql
tar czfP ${BACKUP_DIR}mysql-backup-$(date +%F).tar.gz ${BACKUP_DIR}*.sql
rm -rf ${BACKUP_DIR}*.sql
```
该脚本首先导出所有数据库至指定路径下带有日期戳记名.sql 文件;之后压缩成.tar.gz 归档包以便长期保存;最后清理原始SQL转储文档以节省空间.
#### Swap分区自动创建脚本
当遇到低RAM环境时增加交换区可以帮助缓解压力。以下是建立临时swap的方法之一:
```bash
#!/bin/bash
SWAP_SIZE="4G" # 可调整大小
sudo fallocate -l $SWAP_SIZE /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
```
这组指令将分配一块固定大小的空间给新的swap file,在重启后仍然有效因为已经将其加入fstab配置表内.
阅读全文