1.数据库备份

#!/bin/bash
user="root"
psword="root"
bakdir="/data/mysqlbak"
Date=$(date +%F)
dbnames=$(mysql -u root -proot -e "show databases" | sed 1d | egrep -v "(schema$|mysql)")
#删除3天之前的备份
find $bakdir -ctime + -name \*.sql | xargs rm -f
#备份数据库
for dbname in $dbnames
do
mysqldump -u$user -p$psword --databases $dbname > $bakdir/${dbname}-${Date}.sql
done

2.自动安装apache php mysql (利用本地网络源)

#!/bin/bash
#Date :--
#Author :高鹏
#Function :本脚本用于centos6/7使用自带源安装httpd、mysql、php
#Version :0.2
#Update :--
grep -i "centos" /etc/redhat-release > /dev/null
if [[ $? -ne ]];then
echo "NOT CentOS" && exit
fi OS=$(awk -F . '{print $1}' /etc/redhat-release | grep -o [-] )
function package_version(){
yum list | egrep "(^httpd.x86_64|^php.x86_64|^mysql.x86_64|^mariadb.x86_64)" | awk -F "-" '{print $1}'| awk 'BEGIN{printf("pachage\t\tversion\n")} {print$1"\t"$2}'
} function package_info(){
Apache=$(httpd -v > /dev/null | egrep -o '[0-9]\.[0-9]\.[0-9]') && echo "Apache Version : $Apache" || echo "Apache Version : uninstalled"
Mysql=$(mysql -V > /dev/null| egrep -o '[0-9]\.[0-9]\.[0-9]') && echo "MySQL/MariaDB : $Mysql" || echo "MySQL/MariaDB :uninstalled"
PHP=$(php -v > /dev/null | sed -n 1p | egrep -o '[0-9]\.[0-9]\.[0-9]') && echo "PHP Version : $PHP" || echo "PHP Version :uninstalled"
} function install(){
[[ $OS -eq ]] && yum install -y httpd php mariadb-server
[[ $OS -eq ]] && yum install -y httpd php mysql-server mysql mysql-devel
} function start_server(){
[[ $OS -eq ]] && systemctl start mariadb httpd > /dev/null
[[ $OS -eq ]] && service mysqld start && service httpd start
}
function main(){ echo "################################"
echo "########## installed ###########"
package_info
echo "################################"
package_version read -p "If install?(Y/N) :" yn
case $yn in
Y|y|yes|YES )
read -p "pelease input mysql psword(default:root) :" mysql_psword
mysql_ps=${mysql_psword:=root}
install;;
N|n|no|NO )
exit;;
*)
echo "invalid input" && exit;;
esac
start_server
/usr/bin/mysqladmin -u root -h localhost.localdomain password "$mysql_ps" }
main &&
echo “install complete”

3.获取本机或远程主机信息

#!/bin/bash
#localinfo.sh
#本地信息
clear
#判断是否为root用户
if [[ $(id -u) -ne ]];then
echo "Please execute as root."
exit
fi #获取版本号
if [[ -f /etc/redhat-release ]]; then
Version=$(cat /etc/redhat-release)
elif [[ -f /etc/issue ]]; then
Version=$(awk '{print $1,$2}' /etc/issue)
fi
#获取磁盘信息
Disk_Info=$(lsblk -l | awk 'BEGIN{printf("Disk\t\tSize\n")} /disk/ {print $1"\t\t"$4}')
#获取IP信息
IP_Addr=$(
ETH=$(awk -F ":" 'NR>2{print $1}' /proc/net/dev)&&
for eth in $ETH;do
echo -e "$eth\t\t$(ifconfig $eth | awk '/inet/ {print $2}' | egrep -o "[-]{,}\.[-]{,}\.[-]{,}\.[-]{,}")"
done
)
#获取端口及服务信息
Port=$( netstat -lntup | awk -F / '/LISTEN/ {print $1,$2}' | awk '{print $4"\t\t"$8}' | egrep -o '[0-9]{1,5}'$'\t\t''[a-z]*' | sort | uniq)
#获取内存信息
Mem_Info=$(free -h | egrep "(Mem|Swap)" | awk '{print $1"\t\t"$2}')
#获取 CPU信息
Cpu=$(grep "physical id" /proc/cpuinfo | uniq | wc -l)
Core=$(grep "core id" /proc/cpuinfo | wc -l)
function main(){
echo -e "
###########################################
DATE : $(date "+%F %r")
############## SYSTEM INFO ################
HOSTNAME : $(hostname)
VERSION : $Version
ARCH : $(uname -m)
############## IP INFO ################
$IP_Addr
############## DISK INFO ################
$Disk_Info
############## CPU INFO ################
NUM OF CPU : $Cpu
NUM OF CORE : $Core
############## MEM INFO ################
$Mem_Info
############## PORT SERVER ################
PORT\t\tSERVER
$Port
############## END ################"
}
main

远程信息(调用localinfo.sh)

#!/bin/bash
if [[ -z $ ]];then
echo "USE: $0 IP_ADDRESS [PORT]"&&exit
else
PORT=$
PORT=${PORT:=}
ssh root@$ -p $PORT 'bash -s' < LocalInfo.sh
fi

4带颜色输出字符

#!/bin/bash
#closr
#Black red green yellow blue violet and bluish white
function Echo_Black(){
echo -e "\033[30m${1}\033[0m"
}
function Echo_Red(){
echo -e "\033[31m${1}\033[0m"
}
function Echo_Green(){
echo -e "\033[32m${1}\033[0m"
}
function Echo_Yellow(){
echo -e "\033[33m${1}\033[0m"
}
function Echo_Blue(){
echo -e "\033[34m${1}\033[0m"
}
function Echo_Violet(){
echo -e "\033[35m${1}\033[0m"
}
function Echo_Bluish(){
echo -e "\033[36m${1}\033[0m"
}
function Echo_White(){
echo -e "\033[37m${1}\033[0m"

自编shell脚本合集(完善中)的更多相关文章

  1. Shell 脚本合集

    0. 说明  Shell 脚本合集 1. xcall.sh xcall.sh 编写为了为了同时对多台服务器进行操作,编写完成之后,将其发送到 /usr/local/bin 下 #!/bin/bash ...

  2. C# 调用windows api 操作鼠标、键盘、窗体合集...更新中

    鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体   首先打开spy+ ...

  3. 【shell】shell基础脚本合集

    1.向脚本传递参数 #!/bin/bash #功能:打印文件名与输入参数 #作者:OLIVER echo $0 #打印文件名 echo $1 #打印输入参数 执行结果: 2.在脚本中使用参数 #!/b ...

  4. 利用Shell脚本将MySQL表中的数据转化为json格式

    脚本如下: #!/bin/bash mysql -s -phello test >.log <<EOF desc t1; EOF lines="concat_ws(',', ...

  5. 通过Shell脚本读取properties文件中的参数时遇到\r换行符的问题

    今天在编写微服务程序启动脚本的时候,遇到一个比较奇葩的问题,下面给出具体描述: 目标:通过读取maven插件打包时生成的pom.properties文件,获取里面的应用名称和应用版本号,然后拼接得到s ...

  6. 【shell】Shell命令合集(0)

    Ccat zdd 浏览文件zdd的内容cat zdd1 zdd2 浏览多个文件的内容cat -n zdd浏览文件zdd的内容并显示行号 cd 回到起始目录,也即刚登陆到系统的目录,cd后面无参数cd ...

  7. 利用shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中

    现有需求:将oracle数据库中的数据准实时同步至某ftp服务器中,以便前端应用能定时从ftp服务器目录中取增量数据 方法:将加工脚本写为存储过程,然后利用shell脚本执行该存储过程并将增量数据导出 ...

  8. shell脚本练习题(更新中...)

    练习题(这里贴的是自己写的代码, 网上给的题目代码我会附加在最下面) 1. 编写shell脚本,计算1-100的和: #!/bin/bash #caculate the to `; do sum=$[ ...

  9. (原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法

    一.原理 Windows编译的文件和Linux编译的文件格式不太一样,导致在Linux运行Shell脚本的时候会提示:/bin/bash^M: bad interpreter: 没有那个文件或目录. ...

随机推荐

  1. 毕设问题(1)表格table的表头自定义、复合表头,组合表格

    毕业设计,是一个web项目,遇到的些问题,记录下来.也许也有同样只知道一些,不是那么系统的学过的人,会遇到同样的问题,希望有所帮助. 百度知道有这样一个问题: bootstrap table 如何实现 ...

  2. foreach与正常for循环效率对比

    foreach foreach编译成字节码之后,使用的是迭代器实现的. foreach特点: 无须获取容器大小 需要创建额外的迭代器变量 遍历期间得到的是对象,没有索引位置信息,因此不能进行赋值操作. ...

  3. mysql的锁

    前言 mysql锁的概念参考如下连接: 1.http://blog.csdn.net/u013063153/article/details/53432468 2.http://www.yesky.co ...

  4. Kotlin中?和!!的区别

    很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!均是和NullPointerException有关系,可他们的区别到底是什 ...

  5. CSS text-indent 属性

    text-indent 属性首行文本缩进,有点像padding-left的效果.

  6. 【TCP】tcp协议通信中io

    阻塞IO recv,接收数据,若没有,将阻塞, 当对方发数据来后,linux内核缓冲区得到数据, 内核数据复制到recv()调用所在的用户空间, 阻塞解除,进行下一步处理, 非阻塞IO 轮询调用rec ...

  7. 分布式消息中间件及RabbitMQ

    分布式应用和集群: 从部署形态来看,它们都是多台机器或者多个进程部署,而且都是为了实现一个业务功能. 如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用 如果是同一个业务部署在多台 ...

  8. 多线程模拟生产者消费者示例之Lock

    public class Test { public static void main(String[] args) { List<String> list = new ArrayList ...

  9. SQL SERVER内部函数大全

    SQL SERVER内部函数是SQL数据库中非常重要的一类函数,下面就为您介绍SQL SERVER内部函数,如果您对此方面感兴趣的话,不妨一看. SQL SERVER内部函数: select @@CO ...

  10. kPagination纯js实现分页插件

    kPagination分页插件 纯js分页插件,压缩版本~4kb,样式可以自定义 demo 使用方法 <div id="pagination"></div> ...