一、什么脚本?
- 系统命令的堆积
- 特定的语法+系统命令=文件
- 文件命名: xxx.sh
- 不会手动搭建或者执行某些程序,那么一定不会i使用shell脚本
二、shell脚本做什么
基于标准化之上的——》工具化
- 简化操作步骤,提高效率,减少人为干预,减少系统故障
- 自动化安装程序(自动化安装Mysql,redis,等)
- 自动化生存config文件,提供参数生存文件
- 自动化的完成基础配置(系统初始化操作,系统更新,内核调整,网络,时区,ssh优化等)
- 定期备份恢复程序(:example: Mysql全备+增量+binlog+crond+shell脚本)mysql -e "source /root/db.sql"
- 自动化信息的采集(Zabbix+shell)(硬件,系统,服务,网络等)
- 自动化搜集日志(ELK)收集-》存储-》展示-》分析
- 自动化扩容(zabbix+shell)
监控服务器,如果发现cpu持续80%+触发动作(脚本)
脚本:调用api开通云主机-》初始化环境-》加入集群-》对外提供
三、常见操作
- 文件/路径补全,tab,错了是不能补全的。
- 命令历史记忆功能:history
- 并名功能:alias ,unalias
- screen,这个需要多多了解
- 输入输出重定向:>,>>,1>,&>,
- 管道 | 将前者命令的标准输出交给后者命令的输入 tee
- 命令排序 && ||
- shell 通配符
常见命令使用
chmod a+x xxx.sh 是所有用户可以执行这个脚本,借此聊聊chmod命令,ugo表示user,group,other三种角色,每个角色拥有三种权限,rwx分别表示可读可写可执行,用二进制表示就是100,010,001,通常用7表示该角色拥有该文件所有的权限;
chmod o+w xx.sh 表示对其他用户填加可读权限
chmod 077 xx.sh 表示对go两种添加所有权限
***注意,不要对优盘中的文件进行权限操作,会无效