自编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: 没有那个文件或目录. ...
随机推荐
- Python Web开发:使用Django框架创建HolleWorld项目
开发环境搭建 Python环境安装 下载地址:https://www.python.org/downloads// Django安装 打开Windows CMD输入pip install django ...
- 二、RabbitMQ操作
1.RabbitMQ发送与接收. 2.RabbitMQ发送与接收. 3.RabbitMQ发送与接收.
- shell 单行多行注释
1. 单行注释 众所周知,# 比如想要注释:echo “ni” # echo "ni" 2. 多行注释: 法一: : << ! 语句1 语句2 语句3 语句4 ! 法 ...
- Gene Ontology (GO) 注释
Gene Ontology (GO) 注释 Posted on 2017-06-11 | In 生信 相似的基因在不同物种中,其功能往往保守的.显然,需要一个统一的术语用于描述这些跨物种的同源基因 ...
- 【leetcode】820. Short Encoding of Words
题目如下: 解题思路:本题考查就是找出一个单词是不是另外一个单词的后缀,如果是的话,就可以Short Encode.所以,我们可以把words中每个单词倒置后排序,然后遍历数组,每个元素只要和其后面相 ...
- UVA 12012 Detection of Extraterrestrial(KMP求循环节)
题目描述 E.T. Inc. employs Maryanna as alien signal researcher. To identify possible alien signals and b ...
- [BZOJ1572] WorkScheduling
中文题目:工作安排 原文题目:Work Scheduling 传送门 本题可以采用贪心 算法一:按工作时间排序,如果工作能按时完成的工作就按时完成,如果工作不能按时完成就把之前价值最小的工作和当前作比 ...
- [CSP-S模拟测试]:weight(Kruskal+树链剖分)
题目描述 给你一个$n$个点$m$条边的带边权的无向图(无重边,无自环),现在对于每条边,问你这条边的权值最大可以是多大,使得这条边在无向图的所有最小生成树中?(边权都是整数). 输入格式 第一行包含 ...
- No orientation specified, and the default is horizontal.异常处理(转)
参考:http://blog.csdn.net/sky_monkey/article/details/21466975 整的错误提示信息为: No orientation specified, and ...
- HDU-4475 Downward paths(找规律)
Downward paths Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...