作者:laomo
Linux安装虚拟机环境
mysql里面如何用sql语句让字符串的‘123’转换为数字的123?
XtraBackup不停机不锁表热备mysql数据库
环境
mysql版本 Server version: 5.6.42-log MySQL Community Server
数据库data目录 /data/mysql/
binlog日志目录 /data/bin_logs/
备份目录 /data/backup/
完全备份脚本 (每日一次,00:10:00执行)
************************************************************
#!/bin/bash
base_dir=”/data/backup/`date +%F`”
[ -d ${base_dir} ] || mkdir ${base_dir}
[ -d ${base_dir}/full_`date +%F` ] && exit 0
innobackupex –defaults-file=/etc/my.cnf –user=root –password=’123456′ –no-timestamp ${base_dir}/full_`date +%F`
[ $? -eq 0 ] || echo “$(date +”%F_ %T”) 完全备份失败,请重新备份” >> /data/backup/backup.log
************************************************************
增量备份脚本 (每小时一次,xx:30:00执行)
************************************************************
#!/bin/bash
base_dir=”/data/backup/`date +%F`”
full_dir=”/data/backup/`date +%F`/full_`date +%F`”
inc_dir=”${base_dir}/inc_`date +%H`”
[ -d ${inc_dir} ] && exit 0
innobackupex –defaults-file=/etc/my.cnf –user=root –password=’123456′ –no-timestamp –incremental-basedir=${full_dir} –incremental ${inc_dir} &> /dev/null
[ $? -eq 0 ] || echo “$(date +”%F_ %T”) ${inc_dir}增量备份失败,请重新备份” >> /data/backup/backup.log
************************************************************
一键还原脚本
************************************************************
#!/bin/bash
base_dir=”/data/backup/`date +%F`”
full_dir=”${base_dir}/full_`date +%F`”
inc_dir=”${base_dir}/`ls ${base_dir} | tail -1`”
cp -a ${base_dir} /data/backup/`date +”%F-%T”`_bak
innobackupex –defaults-file=/etc/my.cnf –user=root –apply-log –redo-only ${full_dir}
innobackupex –defaults-file=/etc/my.cnf –user=root –apply-log –redo-only ${full_dir} –incremental-dir=${inc_dir}
service mysqld stop
mv /data/mysql /data/mysql_bak`date +”%F_%T”`
mkdir /data/mysql
innobackupex –defaults-file=/etc/my.cnf –user=root –copy-back ${full_dir}
chown -R mysql.mysql /data/mysql
service mysqld start
###binlog日志还原
###这里选择的是最后一个binlog日志,如果增量备份的一个小时内,有多个mysql-bin.0000xx生成,需要手动选择bin-log日志;
###还原执行13:30点后的所有sql命令
Hour=`basename ${inc_dir}|grep -o ‘[0-9]*’`
binlog=`ls /data/bin_logs/|grep [0-9]|tail -1`
mysqlbinlog –start-datetime=”`date +%F` ${Hour}:30:00″ /data/mysql/${binlog} | mysql -uroot -p ‘123456’
###还原执行13:30-14:10之间的所有sql命令
##mysqlbinlog –start-datetime=”2018-11-21 13:30:00″ –stop-datetime=”2012-03-15 14:10:00″ /data1/log/mysql/mysql-bin.000001 > /tmp/mysql_restore_030915.sql
************************************************************
计划任务
************************************************************
10 00 * * * /bin/bash /root/.scripts/full_back.sh
30 * * * * /bin/bash /root/.scripts/inc_back.sh
如何实现MySQL数据库碎片处理及优化
mysql经过一段时间运行后,经过多次的DML操作会在表中留下很多碎片,造成数据存储时不连续,影响性能。下面几条语句可将mysql优化,建议不要高峰时段操作
#检查表
CHECK TABLE TABLE_NAME;
#分析表
ANALYZE TABLE TABLE_NAME;
#优化表
OPTIMIZE TABLE TABLE_NAME;
#修复表
REPAIR TABLE TABLE_NAME;
#例如对tb_user做优化处理
CHECK TABLE tb_user;
ANALYZE TABLE tb_user;
OPTIMIZE TABLE tb_user;
REPAIR TABLE tb_user;
#查询数据行数
SELECT
table_name,
table_rows
FROM
information_schema.tables
WHERE
table_schema = ‘myapp’
ORDER BY table_rows desc;
如何在Centos7安装和设置svn为服务并开机启动
[users]
vim /opt/svn/repositories/conf/authz
常用的dos命令
1.目录切换
1).进入根目录
cd \
2).返回上一级
cd ..
3).进入具体某个盘,如E:
cd E:
4).直接用pushd定位,如定到pushd F:\Oracle
pushd F:\Oracle
2.查看系统版本
ver
3.文件操作
1).创建文件夹
mkdir F:\abc
echo
2).删除文件夹
rd F:\abc
3).创建一个新文件
echo “abc” >>F:\test123.txt
4).用more查看文件内容
more F:\test123.txt
5).用type查看文件内容
type F:\test123.txt
6).用tree查看目录结构
tree F:
7).用del删除文件
del F:/test123.txt
4.查看和停用服务
1).查看所有系统服务
net start
2).停止服务,如停止MySQL服务
net stop MySQL
3).启动服务,如启动MySQL服务
net start MySQL
5.查看网络连接
1).查看本地端口开放情况
netstat -an
2).查看本地端口开放情况及可执行组件
netstat -anb
3).查看本地端口开放情况及加接的相关进ID
netstat -ano
6.系统账号管理
1).查看系统所有用户
net user
2).查看管理员账户信息,包括权限和登录时间
net user adminstrator
3).创建一个名为sbtest账户
net user sbtest 123456 /add
4).查看本地用户组
net localgroup
5).提升sbtest用户至管理员权限
net localgroup Administrators sbtest /add
6).删除sb123 用户
net user sb123 /del
7).激活用户账号sbtest
net user sbtest /active:yes
8).停用户账号sbtest
net user sbtest /active:no
9).修改用户sbtest密码为sbtest
net user sbtest sbtest
7.网络命令
1).ping命令:域名或IP;如ping百度
ping www.baidu.com
2).查看本地网卡
ipconfig /all
3).内网渗透命令
net view
4).telnet查看端口连通或远程登录
telnet 127.0.0.1 80
telnet 192.168.10.100
8.查看用户权限
whoami
9.路由跟踪
tracert www.baidu.com
10.注册表操作
1).导出注册表
regedit /e E:\software\1.reg “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp”
2).导入注册表
regedit /s E:\software\1.reg
11.查看当前用户
query user
12.注销登录用户格式:logoff 用户ID号
logoff 1
13.打开远程登录桌面窗口
mstsc/console
14.查看系统进程提供的服务
tasklist/svc
15.强制杀掉指定进程
taskkill/pid 进程pid号 /f
如:taskkill/pid 5604 /f
16.查找服务安装路径,如查找MySQL服务的安装路径
sc qc “MySQL”
17.用regsvr32命令注册与反注册
参数: /u 为卸载 /s 为安静模式
如:
regsvr32 WSHom.Ocx/u 卸载wscript.shell对象
regsvr32 scrrun.dll/u 卸载FOS对象
regsvr32 shell32.dll/s/u 安静模式卸载FOS对象
如何利用Python脚本实现邮件发送
用python编写邮件发送功能,代码少,也比较简。可分为http方式默认25端口发送和https方式默认465端口发送。
一..本机发送
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码 message = MIMEText('zabbix邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix邮件发送测试", 'utf-8') message['To'] = Header("测试01", 'utf-8') subject = 'Python SMTP 邮件测试01' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP('smtp.qq.com') smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"
二.用25端口方式
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host = "smtp.qq.com" # 设置服务器 mail_user = "zabbix" # 用户名 mail_pass = "123456" # 口令 sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 message = MIMEText('zabbix邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix邮件发送测试", 'utf-8') message['To'] = Header("测试", 'utf-8') subject = 'Python SMTP 邮件测试' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"
三.利用465端口方式
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host = "smtp.qq.com" # 设置服务器 mail_user = "zabbix" # 用户名 mail_pass = "123456" # 口令 sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 message = MIMEText('zabbix告警邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix告警邮件发送测试", 'utf-8') message['To'] = Header("zabbix告警邮件发送测试", 'utf-8') subject = 'Python zabbix告警邮件发送测试' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP_SSL() smtpObj.connect(mail_host, 465) # 465 为 SMTP 端口号 smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"
Linux Kali Debian 内核 4.14.0-kali3-amd64版本安装virtualbox增强
1.更新linux内核
apt-get update
apt-get dist-upgrade
reboot
2.更新内核头文件和镜像文件
1).打开终端,运行
apt-cache search linux-headers
2).选择第四个下载
apt-get install linux-headers-4.14.0-kali3-amd64
3).接着运行
apt-cache search linux-image
4).同样选择第三个安装
apt-get install linux-image-4.14.0-kali3-amd64
5).最后安装模块增强module-assistant,和gcc,make,运行
apt-get install module-assistant
apt-get install gcc make
5).重启
reboot
3.开始安装增强工具
执行命令:
cp /media/cdrom/VBoxLinuxAdditions.run /root/
chmod 755 /root/VBoxLinuxAdditions.run
cd /root
./VBoxLinuxAdditions.run
reboot