• 创建与数据库、web、邮件相关的shell


    MySQL数据库
        使用 MySQL
            1. 连接到服务器
                $ mysql -u root –p  -- 指定用户并输入密码,连接mysql
            2.  mysql 命令
                show databases -> use mysql -> show tables  -- mysql会话一次只能连一个库,之后可以创表了
            3. 创建数据库
                CREATE DATABASE name;
            4. 创建用户账户
                GRANT SELECT,INSERT,DELETE,UPDATE ON *.* TO 'username'@'host' IDENTIFIED by '123456'  -- host指定服务器,给用户username赋权:所有库的表具有一般权限,用户登录密码123456
            5. 创建数据表(略)
            6. 插入和删除数据(略)
            7. 查询数据(略)
        在脚本中使用 MySQL
            1. 登录到服务器
                $ cat .my.cnf
                [client]
                password = 123456
                $ chmod 400 .my.cnf    -- 设置用户启动的mysql会话的默认密码
                $ mysql mytest -u ly_ibas    -- 可以直接登录了
            2. 向服务器发送命令
                发送单个命令对于 mysql 命令,可以用 -e 选项
                    MYSQL=$(which mysql)
                    $MYSQL mytest -u ly_ibas -e 'select * from employees'
                发送多条SQL命令,可以利用文件重定向
                    MYSQL=$(which mysql)
                    $MYSQL mytest -u ly_ibas <<EOF
                    show tables;
                    select * from employees where salary > 40000;
                    EOF    -- 只返回了原始数据而不是在数据两边加上ASCII符号框,将有利于提取个别的数据元素
                    向数据库中插入数据并检查是否成功
                        MYSQL=$(which mysql)
                        if [ $# -ne 4 ]
                        then
                            echo "Usage: mtest3 empid lastname firstname salary"
                        else
                            statement="INSERT INTO employees VALUES ($1, '$2', '$3', $4)"
                            $MYSQL mytest -u test << EOF
                            $statement
                            EOF
                            if [ $? -eq 0 ]
                            then
                                echo Data successfully added
                            else
                                echo Problem adding data
                            fi
                        fi
            3. 格式化数据
                MYSQL=$(which mysql)
                dbs=$($MYSQL mytest -u ly_ibas -Bse 'show databases')    -- 。 -B 选项指定mysql程序工作在批处理模式运行, -s 选项用于禁止输出列标题和格式化符号
                for db in $dbs
                do
                    echo $db
                done
                通过使用XML,标识出每条记录以及记录中的各个字段值。然后可以使用标准的Linux字符串处理功能来提取需要的数据
                    $ mysql mytest -u ly_ibas -X -e 'select * from employees where empid = 1'
                    <?xml version="1.0"?>    -- 以xml返回的数据
                    <resultset statement="select * from employees">
                    <row>
                        <field name="empid">1</field>
                        <field name="lastname">Blum</field>
                        <field name="firstname">Rich</field>
                        <field name="salary">25000</field>
                    </row>
                    </resultset>
                    $
    使用 Web
        Web页面由三种类型的数据组成:
            HTTP头部    -- HTTP头部提供了连接中传送的数据类型、发送数据的服务器以及采用的连接安全类型的相关信息
            cookie    -- 网站用cookie存储有关网站的访问数据,以供将来使用
            HTML内容
        安装 Lynx
            Lynx程序使用了Linux中的curses文本图形库。大多数发行版会默认安装这个库,如果没有安装,可以从lynx.isc.org网站上下载源码并编译(假定你已经在Linux系统上安装了C开发库)
        lynx 命令行
            Lynx程序支持三种不同的格式来查看Web页面实际的HTML内容:
                在终端会话中利用curses图形库显示文本图形;
                文本文件,文件内容是从Web页面中转储的原始数据;
                文本文件,文件内容是从Web页面中转储的原始HTML源码。
            lynx格式:
                lynx options URL
        Lynx 配置文件
            位置可能存在于:
                /usr/local/lib/lynx.cfg
                /etc/lynx.cfg
                /etc/lynx-curl
            代理服务器可以过滤不良内容和恶意代码,甚至可以发现钓鱼网站,降低网络带宽的使用(缓存了经常浏览的Web页面,并将其返回给客户端)
        从 Lynx 中获取数据
             lynx 进行屏幕抓取的最简单办法是用 -dump 选项,它会将Web页面文本数据直接显示在 STDOUT 上
                URL="http://weather.yahoo.com/united-states/illinois/chicago-2379574/"
                LYNX=$(which lynx)
                TMPFILE=$(mktemp tmpXXXXXX)
                $LYNX -dump $URL > $TMPFILE
                conditions=$(cat $TMPFILE | sed -n -f sedcond)
                temp=$(cat $TMPFILE | sed -n -f sedtemp | awk '{print $4}')
                rm -f $TMPFILE
                echo "Current conditions: $conditions"
                echo The current temp outside is: $temp
                $ sh weather    -- 根据脚本可以制作温度表
                Current conditions: Mostly Cloudy
                The current temp outside is: 32 °F
    使用电子邮件
        Mailx程序发送消息的命令行的格式为:
            mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
        Mailx命令行参数
            参 数  描 述
            -a     指定额外的SMTP头部行
            -b     给消息增加一个BCC:收件人
            -c     给消息增加一个CC:收件人
            -e     如果消息为空,不要发送消息
            -i     忽略TTY中断信号
            -I     强制Mailx以交互模式运行
            -n     不要读取/etc/mail.rc启动文件
            -s     指定一个主题行
            -v     在终端上显示投递细节
        #磁盘信息邮件发送
        $
        date=$(date +%m/%d/%Y)
        MAIL=$(which mailx)
        TEMP=$(mktemp tmp.XXXXXX)
        df -k > $TEMP
        cat $TEMP | $MAIL -s "Disk stats for $date" $1  -- 从脚本外部输入URL
        rm -f $TEMP
    生活就要逢山开路遇水搭桥,愿共勉!
  • 相关阅读:
    MSMQ 跨服务器读写队列的“消息队列系统的访问被拒绝”的解决方案
    WCF中的ServiceHost初始化两种方式
    正则表达式规则
    常用正则表达式
    Visual Studio 2017使用Asp.Net Core构建Angular4应用程序
    斑马打印机ZT410中文打印
    CNPM 安装 for angularjs
    MAC OS X&Vmware
    HBase
    SQL 和 NoSQL 比较
  • 原文地址:https://www.cnblogs.com/TianMu/p/11199450.html
Copyright © 2020-2023  润新知