zoukankan      html  css  js  c++  java
  • 三 脚本编写与运行

    编写脚本的思路:

    明确脚本实现的功能
    哪些数据是变化的,把变化的数据用变量来表示
    使用哪种流程控制
    使用哪些系统命令

    创建第一个脚本

    1、编写脚本代码

    使用vim文本编辑器
    每行一条Linux命令,按执行顺序依次编写



    2、赋予可执行权限

    若直接执行脚本文件,必须具有可执行属性



    3、执行脚本文件

    脚本文件路径/脚本名或./脚本名 (当前路径下执行脚本)
    sh 脚本名或bash 脚本名 不需x权限(推荐使用)
    source 脚本名或. 脚本名   不需x权限 #注意”.”点号

     

    说明:

    1.第三种方法是使用source或者”.”点号读入或加载指定的shell脚本文件(如san.sh),然后依次执行指定shell脚本文件san.sh中的所有语句。
    这些语句将作为当前父shell脚本father.sh进程的一部分运行。因此,使用source或者”.”点号可以将san.sh自身脚本中的变量的值或函数等的返回值传递到
    当前的父shell脚本father.sh中使用。这是第三种方法和前两种的最大区别。也是值得读者注意的地方。

    2 Source或者”.”点号命令的功能是在当前shell中执行source或者”.”点号加载并执行的相关脚本文件中的命令及语句,

    而不是产生一个子shell来执行命令文件中的命令。

    正常的Shell脚本

    脚本声明(需要的解释器、作者信息等)
    注释信息(步骤、思路、用途、变量含义等)
    可执行语句(操作代码)

     

    脚本应用实例

    1.3天备份一次MySQL数据库

    2.编写一个脚本,实现以下目标:

    每次root用户登录后,自动报告当前登录的用户数、打开的进程数、剩余可用内存、剩余交换空间

    3.list_sys_status.sh显示系统使用的以下信息:主机名、ip地址、子网掩码、网关、DNS服务IP地址

    ifconfig | head -2 | tail -1 | awk '{print $2}' | awk -F ":" '{print $2}'

    mysqlbak.sh备份数据库目录脚本

    #!/bin/bash
    DAY=`date +%Y%m%d`
    SIZE=`du -sh /var/lib/mysql`
    echo "Data: $DAY" >> /tmp/dbinfo.txt
    echo "Data Size: $SIZE" >> /tmp/dbinfo.txt
    cd /opt/dbbak &> /dev/null || mkdir /opt/dbbak;cd /opt/dbbak
    tar zcf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt &> /dev/null
    rm -f /tmp/dbinfo.txt

    5.每周日半夜23点半,对数据库服务器上的webdb库做完整备份。把备份文件保存在系统的/mysqlbak目录里,用系统日期做备份文件名 webdb-YYYY-mm-dd.sql

    每次完整备份后都生成新的binlog日志把当前所有的binlog日志备份到/mysqlbinlog目录下。

  • 相关阅读:
    vue-cli3项目引用zepto报$不存在怎么处理
    RocketMQ(五):server端处理框架及消费数据查找实现
    文件上传踩坑记及文件清理原理探究
    ES使用总结 --ES实践速查手册
    java 执行shell命令及日志收集避坑指南
    Hive 如何快速拉取大批量数据
    程序员表白程序,哈哈哈,笑死我了
    发现了一个好玩的辞职程序,哈哈哈,笑死我了
    为什么最新版的VS2017没有net framework 4.6.2,net framework 4.7.2,net framework 4.6.2,net framework 4.8,也无法安装
    各个版本 Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8934346.html
Copyright © 2011-2022 走看看