一个小巧的MySQL Shell

Shell编程规范与变量核心解析:提升脚本质量的关键技巧 Shell脚本作为Linux系统管理和自动化运维的核心工具,其编程规范与变量管理直接影响脚本的可维护性和安全性。从技术原理看,Shell变量本质是内存中的数据存储单元,通过环境变量、局部变量等不同作用域实现数据隔离。规范的变量命名(如全大写常量、小写下划线普通变量)和严格的作用域控制(local声明)能显著提升代码可读性。在企业级应用场景中,结合set -euo pipefail错误处理机制和trap清理命令,可以构建健壮的自动化脚本。特别是在DevOps实践中,规范的Shell脚本能无缝集成到CI/CD流 阅读详情
#!/usr/bin/python
# -*- coding: cp936 -*-

#################################
#   Written by caocao           #
#   caocao@eastday.com          #
#   http://nethermit.yeah.net   #
#################################

import sys, string, os
from types import *
import MySQLdb

print "Written by caocao"
print "caocao@eastday.com"
print "http://nethermit.yeah.net"
print

def iif(expression, whenTrue, whenFalse):
 if expression:
  return whenTrue
 else:
  return whenFalse

class mysqlTest:
 def __init__(self, host="localhost", user="root", passwd="", db=""):
  self.connection=None
  self.host=host
  self.user=user
  self.passwd=passwd
  self.db=db
  self.result=None

  print "-"*40
  print "MySQL Shell v 1.0"
  print "Usage: python mysql.shell.py [host] [user] [passwd(% is empty)] [db]"
  print "Connect..."
  try:
   self.connection=MySQLdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.db)
  except:
   print "Can't connect to mysql server./nPlease make sure your username or password is right."
   sys.exit(1)
  print "-"*40
  print self.printComment("connection", "get_server_info")
  print self.printComment("connection", "get_host_info")
  print self.printComment("connection", "get_proto_info")
  print self.printComment("connection", "info")
  print self.printComment("connection", "character_set_name")
  print self.printComment("connection", "thread_id")
  print self.printComment("connection", "stat")

 def __del__(self):
  if self.connection!=None:
   self.connection.close()
  print "-"*40
  print "Quit..."

 def printComment(self, instance, function):
  return "%s = %s" % (string.rjust(function, 18), eval("self."+instance+"."+function+"()"))

 def printAll(self):
  output, row="", self.result.fetch_row(0)
  for i in range(self.result.num_fields()):
   output+=repr(self.result.describe()[i][0])+"/n"
  for i in range(self.result.num_rows()):
   for j in range(self.result.num_fields()):
    output+=iif(type(row[i][j]) is StringType, row[i][j], repr(row[i][j]))+"/n"
  return output

 def runSQL(self, queryString="show databases"):
  print "-"*40
  try:
   self.connection.query(queryString)
  except:
   print "Can't run sql."
  else:
   self.result=self.connection.store_result()
   print self.printComment("connection", "field_count")
   print self.printComment("connection", "affected_rows")
   print self.printComment("connection", "insert_id")
   print self.printComment("result", "num_fields")
   print self.printComment("result", "num_rows")
   print self.printComment("result", "field_flags")
   print "-"*40
   print self.printAll()

if __name__=="__main__":
 argArray=sys.argv
 del argArray[0]
 test=eval(("mysqlTest(/"%s/")" % "/",/"".join(argArray)).replace("%", ""))
 while True:
  try:
   command=string.strip(raw_input("PS mysql>"), " ")
   commandLow=string.lower(command)
  except EOFError:
   break
  else:
   if commandLow=="exit" or commandLow=="quit":
    break
   elif commandLow=="":
    continue
   else:
    test.runSQL(command)
279个开箱即用Shell脚本合集:运维自动化与Linux实用工具详解 在Linux服务器运维中,自动化是提升效率与稳定性的核心手段。Shell脚本作为最基础的自动化工具,能够将重复性操作封装为可复用的功能模块,覆盖从安全防护到数据备份的完整链路。通过理解脚本的设计原理,如变量前置、结果判断和日志留痕,运维人员可以快速定位问题并执行修复。本文从企业级应用场景切入,解析如何利用Bash、awk与Python的组合,实现DDoS攻击防范、MySQL定时备份、Nginx日志切割等高频需求,并给出脚本二次开发与避坑建议,帮助读者构建属于自己的运维工具箱。 阅读详情

相关推荐

Mysql漏洞利用(越权,实战怎么从低权限拿到root密码)

Mysql漏洞利用(越权,实战怎么从低权限拿到root密码)

Mysql Getshell总结

获取网站根目录方式 (1) phpinfo() 页面:最理想的情况,直接显示web路径 (2) web报错信息:可以通过各种fuzz尝试让目标报错,也有可能爆出绝对路径 (3) 一些集成的web框架:如果目标站点是利用phpstudy、LAMPP等之类搭建的,可以猜测默认路径或者通过查看数据库保存的路径默认路径 winserver的iis默认路径c:\Inetpub\wwwroot linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr.

qq_51478862的博客 1万+

【全解析 | PTA】浙大版《Python 程序设计》题目集-第一章

Python浙大版PTA题解

wzhh_的博客 5527

MySQL写Shell方法总结

MySQL注入点,用工具对目标站点写入一句话shell,需要哪些前提条件? **root权限以及网站的绝对路径** outfile 和 dumpfile 写Shell 利用条件 ·数据库当前用户为root权限 ·知道当前网站的绝对路径 ·PHP的GPC为OFF状态;(魔术引号,GET、POST、COOKIE) `写入的那个路径要有写入权限 过滤了单引号into outfile 还可以用吗 不能,GPC要OFF才行,可以测试Hex编码 基于UNION联合查询 ?id=1 UNION ALL SELECT

李同學AI安全 5258

WSL 2 部署 Rocky Linux 9:从零到生产环境配置指南(2025版)

本文详细介绍了如何在WSL 2上部署Rocky Linux 9,从环境准备到生产环境配置的全流程指南。通过优化安装流程和系统配置,帮助开发者和运维工程师在Windows环境下高效运行企业级Linux系统,特别适合需要本地开发但部署到RHEL系服务器的项目。

weixin_28455801的博客 479

【软碟通 | UltraISO】刻录光盘教程(制作U盘启动盘)

前言 今天老师说办公室的电脑有点卡,让我给重新安装一个 Windows 7 系统。于是就用软碟通(UltraISO)在 U 盘上刻录了一个 Windows 7 镜像,然后给老师重装了系统。顺便把制作 U 盘启动盘的教程也分享给大家。 软件 UltraISO v9.7.1.3519:点击跳转(密码:dd2k) 教程 将 U 盘插到电脑上,然后鼠标右击选择格式化(制作启动盘必须格式化) 点击文件-打开 选择下载好的系统镜像(如:Windows 7) 点击启动-写入硬盘映像 选择硬盘

XavierJ的博客 2万+

mysql_getshell的几种方法

mysql_getshell 一、mysql的--os-shell 利用原理 --os-shell就是使用udf提权获取WebShell。也是通过into oufile向服务器写入两个文件,一个可以直接执行系统命令,一个进行上传文件。此为sqlmap的一个命令,利用这条命令的先决条件: 要求为数据库DBA,使用--is-dba查看当前网站连接的数据库账号是否为mysql user表中的管理员...

carmi的博客 2344

SolidWorks_模具设计5_分型线生成

分型线是模具设计的核心要素,直接影响产品质量、脱模可行性和制造成本。本文系统介绍了分型线生成技术,包括三种核心算法:基于凸包的方法适用于简单几何,可见性分析处理复杂曲面,曲率特征优化则能找到自然分界。文章提供了完整的Python实现示例,涵盖点云投影、网格处理和分型线评估等关键技术。通过理解这些原理和方法,工程师可以更高效地设计出满足外观要求、易于加工的分型线方案,显著提升模具设计质量和效率。

H17853509096的博客 179

mysql-getshell的几种方法

mysql-getshell的几种方法

lza20001103的博客 892

YOLOv8进阶:SEAM注意力与Repulsion Loss双剑合璧,突破遮挡检测瓶颈

做目标检测时,最头疼的莫过于目标被遮挡的场景——行人被树木挡住一半、车辆被广告牌遮挡部分轮廓……这些情况往往让模型“犯迷糊”。但现在,有了SEAM注意力模块和Repulsion Loss排斥损失,我们就能让YOLOv8在遮挡场景下也能“拨开迷雾见真章”。这篇教程会带你一步步理解这两个技术,并亲手把它们融入YOLOv8,让你的检测模型在复杂场景下也能稳如泰山。

FJN110的博客 233

03、AC分析

本节我们将对之前的BUCK电路进行AC分析! 首先,我们之前的BUCK电路是开环电路,现在我们把它设计成闭环电路!电路图如下: 我们对闭环BUCK电路先瞬态仿真一下,波形如下: 然后在电路中加入小信号和波特图进行AC仿真 原理图如下: 增益为0时所对应的相位裕度为56°,这个相位裕度一定要大于0°,大于45°则比较稳定! ...

soumns丶涛的博客 3519

关于MySQL的几种getshell

场景介绍:当靶机拥有连接数据库功能时,我们在自己服务器上开启数据库服务,下载脚本用python2运行至于读取什么文件就更改filelist就可以了。

NYG694的博客 1615

人工智能面试总结-分类与聚类

目录说说常用的分类算法,以及各自的优缺点?说说为什么正确率有时不能有效评估分类算法?说说什么样的分类器最好?说说聚类算法有哪些衡量标准?(选看)各聚类算法性能比较汇总说说什么是聚类,你知道哪些聚类算法?具体展开介绍你知道的聚类算法?说说K-Means聚类算法流程?说说K-Means聚类算法如何调优?说说K-Means聚类算法如何选择初始点?说说K-Means聚类聚的是特征还是样本?说说K-Means聚类的特征距离是如何计算的?说说聚类与分类的区别?手撕K-Means聚类 说说常用的分类算法,以及各自的优缺点

啥都生的博客 3865

h2 mysql性能_小巧好用的H2数据库

#re: 小巧好用的H2数据库H2 数据库 2010-10-04 10:31:31| 分类: 数据库 | 标签:h2 |字号大中小 订阅 .1.数据库连接的jdbc urlh2分嵌入模式和服务模式,根据不同的模式和情况。连接数据库jdbc url的写法不同连接内嵌模式的数据库"jdbc:h2:file:D:/test" 连接自定目录下的指定数据库"jdbc:h2:~/test" 连接...

weixin_36278817的博客 431

什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中)

华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 11万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

p0wny-shell:PHP Web Shell的攻防实战与安全加固指南

Web Shell作为网络安全领域的关键概念,本质是通过Web接口在服务器上执行命令的程序,其核心原理是利用Web应用漏洞(如文件上传、代码注入)建立远程控制通道。从技术价值看,它不仅是渗透测试中维持访问、横向移动的实用工具,更是理解攻防对抗底层逻辑的绝佳样本。在应用场景上,安全研究人员通过分析其代码结构和交互方式,可以逆向推导攻击路径,从而在防御端构建更有效的检测与响应策略。本文聚焦于p0wny-shell这一经典单文件PHP Web Shell,深入解析其模块化设计、实战部署技巧,并探讨如何从防御视角进

weixin_33843409的博客 491

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux之文本处理小工具+shell从入门到精通

Shell脚本编程核心摘要 本文档全面介绍了Shell脚本编程的核心知识,主要包含以下内容: 文本处理工具:详细讲解grep、cut、sort、uniq等文本处理命令的用法和示例,包括正则表达式应用。 Shell基础特性:包括命令补全、常用快捷键、通配符使用和引号的三种类型(双引号、单引号、反撇号)。 变量管理:涵盖变量分类(本地/环境/全局/系统变量)、定义规则、数组使用、交互式变量定义和变量内容操作。 流程控制:包括if条件判断、for/while/until循环语句的语法结构和实际应用案例,如批量创建

小峰编程 930

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lnmp shell安装脚本

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。LNMP是现在大多数大型公司在用的web环境,nginx小巧高效的web服务器和反向代理服务器,相对于apach占用资源更少,抗并发力更强,而且处理静态文件速度非常快。Mysql是一个小型关系型数据库管理系统。PHP是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免...

weixin_34319640的博客 186

linux mysql 邮件_Linux下每天自动备份Mysql数据库发送到指定Email

网站最重要的是什么?如果网站数据突然丢失 估计你会崩溃 这篇文章主要介绍 在Linux下每天自动备份Mysql数据库,并且自动发送到你指定的邮箱里,这样你再也不会为丢失数据烦恼啦。一、安装 postfix 并配置二、安装mutt并配置muttmutt,它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在linux命令行模式下收发邮件附件1、安装mut...

weixin_42324688的博客 731

shell在linux里摇摇晃晃

1.shell不只是一种解释器,还是一种编程工具 查看系统中可用的shell,linux默认使用 Bash Shell [root@localhost ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh redhat系将/...

weixin_30578677的博客 536

vb.net 执行mysql语句_在VB.NET应用中使用MySQL的方法_MySQL

绪言在Visual Studio中使用向导连接到MySQL数据库是一件相当棘手的事情。因为MySQL并不在VS2012默认支持的数据库中(比如SQL Server)。在本文中我将介绍如何使用VB.NET连接到MySQL数据库并且执行SQL语句(SELECT,UPDATE,DELETE),同时我会展示如何将MySQL连接器导入(connectors)到Visual Studio 2012中。使用代码...

weixin_39726379的博客 632

Linux下每天自动备份Mysql数据库发送到指定Email

网站最重要的是什么?如果网站数据突然丢失 估计你会崩溃 这篇文章主要介绍 在Linux下每天自动备份Mysql数据库,并且自动发送到你指定的邮箱里,这样你再也不会为丢失数据烦恼啦。 一、安装 postfix 并配置 参考CentOS6.4下邮件服务器搭建 二、安装mutt并配置mutt mutt,它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和...

diaoxu9717的博客 505

记录一个牛逼的 lnmp自动安装脚本

https://lnmp.org LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/DeepinServer/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/P

Bob的专栏 539

每日get一个新命令

既然差不多每天都会学到新的shell命令,不然

何必严肃 629

测试过程中用shell的地方_年薪30W测试工程师成长之路,你在哪个阶段?

对任何职业而言,薪资始终都会是众多追求的重要部分。 前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱和。当然,我说的是最基础的功能测试的岗位需求已经很少了,而自动化、性能、安全乃至于以后可能出现的大数据测试、AI测试仍存在着非常多的机会。很多测试从业者其实会对自己未来的发展感到迷茫,觉得自己的工作其实就是用“鼠标点点点”...

weixin_42504048的博客 159

面试了上百位性能测试后,我发现了一个令人不安的事实

在企业中负责技术招聘的同学,肯定都有一个苦恼,招性能测试工程师太难了! 每当发布一个性能测试岗位,不一会就能收到上百份简历,其中不乏学历亮眼、背景出色、简历里各种高并发、大流量的项目经验。 但是进入面试环节后,却发现绝大多数的候选人,简历上所谓的性能测试经验,都是停留在工具使用、脚本编写的水平,通常都是把脚本放到压力机上跑一下,然后统计出数据就完了。 当你希望候选人讲一个项目中遇到的性能问题,以及如何分析定位时,却发现绝大多数根本没有遇到过性能问题。当然也有少量候选人也测出过一些性能问题。你再追问其性能.

起码有故事 201
上一篇: 一个小巧的Python Shell
下一篇: 将GBK汉字转化为拼音的Python小程序
nethermit
博客等级 码龄25年 11粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值