shell脚本编程学习笔记(四)shell操作数据库
一、数据库基本操作
1)登录mysql服务器:mysql -u root -p 密码
2)查看数据库:show databases
3)查看表:show tales from db;
4)查看表结构:desc table;
5)创建表:create table table();
6)查看表数据:select * from table;
7)插入数据:insert into table(f1,f2) values('v1','v2');
8)删除数据:delete from table where id=8;
9)修改表数据:update table t1 set f1='123',f2='abc' where id=8;
10)删除表:drop table t1;
11)删除数据库:drop database d1;
二、shell操作mysql之增、删、改、查
1)连接数据库
#!/bin/bash
#mysql.sh
mysql='mysql -uroot -proot'
sql="show databases"
$mysql -e "$sql"
2)shell操作mysql之增、删、改、查
#!/bin/bash
#mysql1.sh
conn="mysql -uroot -proot"
case $1 in
select)
sql="查询语句"
;;
delete)
sql="删除语句"
;;
insert)
sql="插入语句"
;;
update)
sql="更新语句"
;;
esac
$conn -e "$sql"
三、apache日志分割及相关计划任务
#!/bin/bash
#logcut.sh
yesterday=`date -d yesterday +%Y%m%d`
srclog="/usr/local/apache2.4/logs/access_log"
dstlog="/usr/local/apache2.4/logsbak/access_${yesterday}.log"
mv $srclog $dstlog
pkill -HUP httpd //pkill -1 httpd 重新读取日志文件
crontab -e //任务计划
00 00 *** /mnt/logcut.sh
crontab -l //查看任务计划
四、apache日志统计之mysql数据库
结合日志分割同时对日志进行统计存入数据库
#!/bin/bash
#logpv.sh
yesterday=`date -d yesterday +%Y%m%d`
srclog="/usr/local/apache2.4/logs/access_log"
dstlog="/usr/local/apache2.4/logsbak/access_${yesterday}.log"
mv $srclog $dstlog
pkill -1 httpd
cat /usr/local/apache2.4/logsbak/access_20171125.log|awk '{print $1}'|sort|uniq -c|awk '{print $1":"$2}' > a.txt //这里的目录及文件名可以是$dstlog
mysql="mysql -uroot -proot"
for i in `cat a.txt`
do
pv=`echo $i|awk -F: '{print $1}'`
ip=`echo $i|awk -F: '{print $2}'`
sql="insert into text.countab(date,ip,num) value('$yesterday','$ip','$pv')"
$mysql -e "$sql"
done
rm -rf a.txt
sql="select * from text.countab order by id"
$mysql -e "$sql"
crontab -e //任务计划
00 00 *** /mnt/logcut.sh
crontab -l //查看任务计划
shell脚本编程学习笔记(四)shell操作数据库的更多相关文章
- Linux Shell脚本编程学习笔记和实战
http://www.1987.name/141.html shell基础 终端打印.算术运算.经常使用变量 Linux下搜索指定文件夹下特定字符串并高亮显示匹配关键词 从键盘或文件里获取标准输入 [ ...
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
前置知识:awk 参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html awk 'BEGIN{ commands } pattern{ co ...
- shell脚本编程学习笔记(一)
一.脚本格式 vim shell.sh #!/bin/bash //声明脚本解释器,这个‘#’号不是注释,其余是注释 #Program: //程序内容说明 #History: //时间和作者 二.sh ...
- shell脚本编程学习笔记(三)编写邮件报警脚本
一.shell编写邮件报警脚本 1.POSTFIX邮件服务器准备 a.首先卸载服务器上自带的sendmail rpm -qa sendmail* //查看安装的sendmail rpm -e send ...
- shell脚本编程学习笔记(二)linux服务器启动流程
一.linux服务器启动流程 1.bios找到磁盘上的mbr主引导扇区 2.进入grub洁面选择相应的启动内核 3.读取kernel内核文件-/boot/vmlinuz-* 4.读取init的镜像文件 ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- Bash脚本编程学习笔记08:函数
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...
- Bash脚本编程学习笔记06:条件结构体
简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...
随机推荐
- webpack 代理问题
devServer host: '0.0.0.0' 或者是ip 形式的 ,proxy 中 的 target,host 需要为ip形式的地址, host: 'aa.a.com' 为字符形式的 ,prox ...
- Matlab技巧1:在同一坐标系上绘制两个函数图像
x=-:; y1=sqrt(*abs(x)-x.^); y2=asin(abs(x)-)-pi/; plot(x,y1,'r',x,y2,'b') grid 程序结果:
- 详解C/C++中的的:#pragma pack(push) 、#pragma pack(pop) 和#pragma pack()
前言 我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定. 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? ...
- AtCoder Beginner Contest 153 题解
目录 AtCoder Beginner Contest 153 题解 A - Serval vs Monster 题意 做法 程序 B - Common Raccoon vs Monster 题意 做 ...
- Jmeter-功能概要
1.Jmeter工具组成部分 (1)资源生成器:用于生成测试过程中服务器.负载机的资源代码.(LR中的VuGen) (2)用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为.(LR中的 ...
- Eclipse项目转到MyEclipse中出错
原因如下. JDK的编译版本和JRE的运行版本不一致导致了这个问题. 在MyEclipse中,对项目进行Build path 逐一设置即可. 还有关于类型转换的问题,由于JDK版本的不一致,下载下来的 ...
- SequoiaDB报告创建线程失败的解决办法
1.问题背景 对于分布式数据库和分布式环境,高并发和高性能压力的情况下,出现线程创建失败等等问题也是十分常见的,这时候就十分考虑数据库管理员的经验,需要能快速的定位到问题和瓶颈所在,快速解决.本文也是 ...
- 题解【洛谷P1886】滑动窗口 /【模板】单调队列
题面 单调队列模板题. 单调队列可以从队首和队尾出队. 队列中的元素大小具有一定的顺序. 具体可参考这一篇题解 #include <bits/stdc++.h> #define itn i ...
- django 外键使用select html
1.HTML代码: <td> <select id="depend_case" name="depend_case"> <opti ...
- 解决问题:SVN重命名后,不允许提交
第一步:选中要修改的文件,右键,修改文件名称,具体操作如下图所示 第二步:提交,提交时,不要提交修改的文件,在上一层文件夹上提交