shell脚本应用实例

本文介绍了几种实用的脚本编写案例,包括用户创建、数据库备份、服务部署等,通过具体的命令展示如何实现自动化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户建立脚本

要求: 
执行 users_create.sh userlist passlist 
建立 userlist 列表中的用户 
设定 userlist 列表中的密码为 passlist 列表中的密码 
当脚本后面跟的文件个数不足两个时报错 
当文件行数不一致时报错 
当文件不存在时报错

[root@desktop mnt]# cat userfile     ##添加用户
user1
[root@desktop mnt]# cat passfile     ##添加密码
uaer1123
[root@desktop mnt]# vim user_create.sh     ##编辑脚本
[root@desktop mnt]# sh user_create.sh userfile 
1.ERROR:Please input userfile and passfile follow scripts!!     ##提示
[root@desktop mnt]# sh user_create.sh userfile passF
3.ERROR:passF is not exist!!    ##提示
[root@desktop mnt]# sh user_create.sh userfile passfile    ##调用成功
user1 create
[root@desktop mnt]# id user1   ##查看用户
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

脚本内容: 




数据库备份

要求: 
执行 db_dump.sh westos( 数据库密码 ) 
脚本执行后会备份数据库中的所有库到 /mnt/mysqldump 目录中 
备份文件名称为 “库名称 .sql” 当此文件存在时报错并询问动作 
输入“ S” 跳过备份,当输入“ B” 时备份“库名称 .sql” 文件 

为“库名称 _backup.sql”, 当输入“ O” 时,覆盖源文件

脚本内容: 





服务自动部署示例

要求: 
执行脚本 lamp.sh 
脚本执行后部署好论坛,并设定 apache 的网络接口为 8080 

脚本内容: 





自动登陆脚本

要求: 
执行 auto_ssh.sh 172.25.254.100 westos 
172.25.254.100 为 ip 
westos 为密码 
执行脚本后自动登陆 172.25.254.100 并保持登陆

  • 1
  • 2

脚本内容: 

法一(显示可以远程连接IP的主机):


法二(标准答案):



批处理脚本

要求: 
检测教室中开启的所有主机,并抓取所有主机的值机名称和 ip 
的对应列表,把列表保存在 /mnt/ip_host.list 文件中

脚本内容: 


### Shell脚本的实际应用场景示例 #### 系统管理和配置 为了自动化系统配置和管理任务,例如定期备份、日志清理等,Shell脚本提供了极大的便利。下面是一个用于自动更新Linux系统软件包的Shell脚本实例: ```bash #!/bin/bash # 使用 apt-get 自动更新所有软件包 sudo apt-get update && sudo apt-get upgrade -y echo "System update completed." ``` 此脚本能够确保系统的软件始终保持最新状态,减少手动操作带来的错误风险[^4]。 #### 批处理任务 当面对大量文件或数据时,批处理能力显得尤为重要。这里有一个统计指定文本文件中单词频率的例子: ```bash #!/bin/bash # 统计给定文本文件中的单词频率 if [ $# -eq 0 ]; then echo "Usage: $0 filename" exit 1 fi filename=$1 tr -c '[:alnum:]' '[\n*]' < "$filename" | grep -v '^$' | sort | uniq -c | sort -nr ``` 这段代码可以帮助快速了解文档内的词汇分布情况,对于数据分析工作非常有用。 #### 软件部署和配置 在部署新应用程序或者调整现有服务设置方面,Shell脚本能起到重要作用。比如批量创建多个用户账户的过程可以通过以下方式完成: ```bash #!/bin/bash # 从列表中批量创建用户 userlist="user1 user2 user3" for user in $userlist; do sudo useradd $user echo "User $user created." done ``` 这不仅提高了效率,还减少了人为失误的可能性。 #### 日常任务自动化 针对一些重复性的日常工作流程,如定时执行特定任务、生成报表或是发送通知邮件等,也可以借助Shell脚本来简化这些过程。例如去除含有某些关键词(如`this`)的句子并输出其余部分的功能实现如下所示: ```bash #!/bin/bash input_text='that is your bag\nis this your bag?\nto the degree or extent indicated.\nthere was a court case resulting from this incident\nwelcome to nowcoder' filtered_output=$(echo -e "$input_text" | grep -viw 'this') echo "$filtered_output" ``` 上述例子展示了如何过滤掉包含敏感词的内容,在实际应用中有助于保护隐私安全[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值