自编shell脚本合集(完善中)
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脚本合集(完善中)的更多相关文章
- Shell 脚本合集
0. 说明 Shell 脚本合集 1. xcall.sh xcall.sh 编写为了为了同时对多台服务器进行操作,编写完成之后,将其发送到 /usr/local/bin 下 #!/bin/bash ...
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体 首先打开spy+ ...
- 【shell】shell基础脚本合集
1.向脚本传递参数 #!/bin/bash #功能:打印文件名与输入参数 #作者:OLIVER echo $0 #打印文件名 echo $1 #打印输入参数 执行结果: 2.在脚本中使用参数 #!/b ...
- 利用Shell脚本将MySQL表中的数据转化为json格式
脚本如下: #!/bin/bash mysql -s -phello test >.log <<EOF desc t1; EOF lines="concat_ws(',', ...
- 通过Shell脚本读取properties文件中的参数时遇到\r换行符的问题
今天在编写微服务程序启动脚本的时候,遇到一个比较奇葩的问题,下面给出具体描述: 目标:通过读取maven插件打包时生成的pom.properties文件,获取里面的应用名称和应用版本号,然后拼接得到s ...
- 【shell】Shell命令合集(0)
Ccat zdd 浏览文件zdd的内容cat zdd1 zdd2 浏览多个文件的内容cat -n zdd浏览文件zdd的内容并显示行号 cd 回到起始目录,也即刚登陆到系统的目录,cd后面无参数cd ...
- 利用shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中
现有需求:将oracle数据库中的数据准实时同步至某ftp服务器中,以便前端应用能定时从ftp服务器目录中取增量数据 方法:将加工脚本写为存储过程,然后利用shell脚本执行该存储过程并将增量数据导出 ...
- shell脚本练习题(更新中...)
练习题(这里贴的是自己写的代码, 网上给的题目代码我会附加在最下面) 1. 编写shell脚本,计算1-100的和: #!/bin/bash #caculate the to `; do sum=$[ ...
- (原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法
一.原理 Windows编译的文件和Linux编译的文件格式不太一样,导致在Linux运行Shell脚本的时候会提示:/bin/bash^M: bad interpreter: 没有那个文件或目录. ...
随机推荐
- 云中沙箱学习笔记1-快速部署并使用MySQL数据库
1.1 背景知识 业务背景 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面MyS ...
- post请求中的参数形式和form-data提交数据时取不到的问题
@Controller页面form表单请求时不会丢数据返回json数据时需要加 注解@ResponseBody请求格式如下 @ResponseBody public Object login(Sign ...
- Linux修改密码指令
1.在选择系统菜单界面,按 "e" 进入编辑模式 2.在以字符串“Linux16”开头的行,将光标移动到该行的结尾,然后输入“init=/bin/bash”,按 "Ctr ...
- center os7 安装mysql
安装mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险, ...
- 为什么单个binlog会大于max_binlog_size设置
查看参数设置mysql> show global variables like '%max_binlog_size%';+-----------------+------------+| Var ...
- phpstorm git配置
一. 安装git apt-get install git 二. 选择file->setting->Version Control->git 在此输入框输入git的执行路径 三.配置g ...
- python py文件转换成exe
1.首先学会了最简单的方法 1)pip install pyinstaller 安装pyinstall 2)pyinstaller aaaa.py 转换,会在当前目录下建两个文件夹,其中一个文件夹 ...
- 浅谈SAP CRM和Hybris Commerce里的价格架构折扣
最近Jerry做了一个和价格折扣相关的原型项目,把学到的知识记录下来,以备将来查阅. 在这个原型项目里,我们用React-Native开发了一个移动应用,用户可以在手机上浏览SAP Hybris Co ...
- 调试web worker (动态生成的worker)
1.在worker.js源码文件中 写下debugger关键词 2. F12打开控制台,重新刷新页面,加载worker.js文件(注意之前的缓存,chrome推荐使用 ctrl + F5 刷新) 3. ...
- 【HDOJ6598】Harmonious Army(最小割)
题意:有n个人,每个人可以从A,B两种职业中选择一种 有m对两人组,如果两个人都是A能获得p的收益,一个A一个B能获得q的收益,都是B能获得r的收益,其中q=p/4+r/3,保证p%4=0,r%3=0 ...