自编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: 没有那个文件或目录. ...
随机推荐
- Linux学习笔记2-CentOS7安装tomcat8
1.下载tomcat:apache-tomcat-8.5.16.tar.gz 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat ...
- linux性能分析工具Cpu
- 向指定URL 发送POST请求的方法
java发送psot请求: package com.tea.web.admin; import java.io.BufferedReader; import java.io.IOException; ...
- Vue.js----router(路由)
什么是路由? 路由可看做是一个键值对,K-V. K => path()路径地址 V=> 处理请求的回调函数 前台路由 K => path()路径地址 V=> 路由组件 编写使用 ...
- 前端this相关
前端this相关: <script> //示例一 function func1() { console.log(this); //this代指window } func1(); //win ...
- SGU 194 Reactor Cooling (无源上下界网络流)
The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...
- LUOGU P3759 [TJOI2017]不勤劳的图书管理员(树套树)
传送门 解题思路 和以前做过的一道题有点像,就是区间逆序对之类的问题,用的是\(BIT\)套权值线段树,交换时讨论一下计算答案..跑的不如暴力快.. 代码 #include<iostream&g ...
- [CSP-S模拟测试]:Endless Fantasy(DFS)
题目描述 中二少年$cenbo$幻想自己统治着$Euphoric\ Field$.由此他开始了$Endless\ Fantasy$.$Euphoric\ Field$有$n$座城市,$m$个民族.这些 ...
- [CSP-S模拟测试]:喝喝喝(模拟)
题目描述 奥利维尔和雪拉扎德在喝酒.两人连喝$18$瓶后,奥利维尔最终倒下了.奥利维尔服用了教会研究的醒酒药后,因为服用了太多产生了副作用,第二天睡不着了.他只好用数数的方式度过无聊的时光,不过他毕竟 ...
- Go的struct
1. 前言 Go的struct声明允许字段附带Tag来对字段做一些标记. 该Tag不仅仅是一个字符串那么简单,因为其主要用于反射场景,reflect包中提供了操作Tag的方法,所以Tag写法也要遵循一 ...