Linux自动化运维

Linux自动化运维笔记
本节主要讲解将命令写入脚本中用于实现自动化运维


shell脚本
1、$意义
2、检查语法错误
3、字体颜色改变
4、快捷键使用
5、if else表达式
6、for循环
7、seq遍历
8、将文件复制到远程服务器上
9、数据库定时备份脚本
10、··符号的使用
11、crontab定时使用
12、while循环
14、req命令的使用
13、学会使用脚本自动化执行




$0   #获取当前脚本名称
$1~9 #获取对应参数
$*   #获取所有参数
$?   #获取上一条命令执行过程
$$   #获取shell脚本ID


UP|chmod 777 file 


bash -n shell.sh 检查语法错误
sh shell.sh|./shell.sh


echo(写入输出) -e(转义) "\033[...\033[.."
格式: echo -e "\033[字背景颜色;字体颜色m 字符串\033[0m" 
http://blog.csdn.net/panpan639944806/article/details/23930553


yyp复制粘贴
dd删除一行
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第 N 行的起始位置


linux shell中 if else以及大于、小于、等于逻辑表达式介绍
if ....; then
....
elif ....; then
....
else
....
fi
http://www.jb51.net/article/34332.htm


vim 常用快捷键
http://blog.csdn.net/u014015972/article/details/50708360


shell中各种括号的作用()、(())、[]、[[]]、{}
http://blog.csdn.net/taiyang1987912/article/details/39551385


seq 遍历


#!/bin/bash
#echo $0 #获取当前脚本名称
#echo $1 #1-9获取对应参数 $*获取所有参数 $?获取上一条命令执行过程 $$获取shell脚本ID
echo -e "\033[41;32m please select menu:\033[0m"
echo "1)创建目录"
echo "2)安装Mysql5"
echo "3)安装Nginx"
echo "4)安装Php5"
read index
#判断用户选择的任务
if [[ $index == 1 ]]; then
        echo "请输入要创建的目录路径:"
        read dname
        mkdir -p $dname
        echo "sucess!">>"$dname/b.txt"
else
        echo "00"
fi


将本机文件复制到远程服务器上
#scp /home/administrator/news.txt [email protected]:/etc/squid
/home/administrator/      本地文件的绝对路径
news.txt                  要复制到服务器上的本地文件
root                      通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129             远程服务器的ip地址(也可以使用域名或机器名)
/etc/squid                将本地文件复制到位于远程服务器上的路径
https://www.cnblogs.com/wanqieddy/archive/2012/08/02/2619928.html


数据库定时备份
which mysqldump找
https://www.cnblogs.com/xcxc/archive/2013/01/30/2882840.html


$UID:输出执行当前shell用户id,id=0为root


#!/bin/bash
##mysql backup shell
##年月日 时间毫秒
BACKUP_DIR=/data/backup-mysql/`data + %Y%m%d%s`
MYSQLDB=mysql
#!/bin/bash
##mysql backup shell
##年月日 时间毫秒
BACKUP_DIR=/data/backup-mysql/`data + %Y%m%d%s`
MYSQLDB=mysql
MYSQL=root
MYSQLPWD=123456
MYSQLCMD=/usr/bin/mysqldump


#1、检测当前是否为root用户
if [[ $UID -ne 0 ]];then
        echo "must be root"
        exit
fi


#2、检测目录是否存在
if [[ ! -d $BACKUP_DIR ]];then
        mkdir -p $BACKUP_DIR
        echo "目录创建成功"
else
        echo "目录已存在"
fi


#3、开始备份数据库
$MYSQLCMD -u$MYSQLUSER -p$MYSQLPWD $MYSQLDB > $BACKUP_DIR/$MYSQLDB.sql


#4、结果输出
if [[ $? -eq 0 ]];then
        echo "Mysql backup success!"
else
        echo "backup error!"
fi


定时
crontab -e:分时日月周
0 0 * * * /bin/bash /opt/shell3.sh
1 * * * * ll


crontab -l -u root
列出root用户定时任务
https://www.cnblogs.com/longjshz/p/5779215.html


while用法
#!/bin/bash
while read line
do
        echo "读取ip:$line"
done < /opt/iplist.txt


例如下面脚本自动执行mariadb和php安装
#!/bin/bash
echo "是否安装mariadb(y/n)"
read yes_or_no
if [[ $yes_or_no == 'y' ]];then
        yum -y install php
        echo "Mariadb安装成功!"
else
        echo "不进行Mariadb安装!"
        echo "是否进行PHP安装(y/n)"
        read yn
if [[ $yn == 'y' ]];then
        yum -y install php
        echo "php安装成功!"
else
        echo "不进行php安装"
fi
fi


sed命令的使用

sed -i '1,$d' file

http://blog.csdn.net/xifeijian/article/details/9209655

你可能感兴趣的:(linux)