python 地板除法(floor)和截断除法(trunc)

math.floor() & math.trunc()

math.floor 和 math.trunc的官方不同版本的介绍如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
math.floor:
python2.7: Return the floor of x as a float, the largest integer value less than or equal to x.
python3.5: Return the floor of x, the largest integer less than or equal to x. If x is not a float, delegates to x.__floor__(), which should return an Integral value.
math.trunc:
python2.7: Return the Real value x truncated to an Integral (usually a long integer). Uses the __trunc__ method.
python3.5: Return the Real value x truncated to an Integral (usually an integer). Delegates to x.__trunc__().
math.ceil:
python2.7: Return the ceiling of x as a float, the smallest integer value greater than or equal to x.
python3.5: Return the ceiling of x, the smallest integer greater than or equal to x. If x is not a float, delegates to x.__ceil__(), which should return an Integral value.

先上具体的例子:

阅读更多

zabbix使用percona-monitoring-plugins监控mysql

摘要

利用 Zabbix 监控MySQL的时候,zabbix官网自带的插件只提供了很少的监控参数,对于运维和DBA来说远远不够,这里利用Percona官网的插件来监控MySQL服务

依赖

Percona官网监控MySQL的插件是利用PHP写的,故需要安装PHP环境

yum install php php-mysql

MySQL installation

监控MySQL当然需要安装MySQL服务,对于具体安装和配置MySQL服务的过程请参考:

Centos下YUM安装特定版本MySQL

阅读更多

Redis - redis slowlog配置说明

导语

类似于MySQL,Redis服务也有slow log,用来记录查询执行时间,
这里的执行时间仅仅指的是查询命令所消耗的时间,而不包括客户端响应等。
Redis的slow log是保存在内存中的,所以读写速度非常快,
不用担心因为开启slow log而对redis造成别的问题

配置

如果系统没有禁止`config`命令,则我们可以用config命令来操作,
而不用通过修改配置文件然后重启服务的方式

阅读更多

MySQL账号权限建议

原则

1
2
3
4
1、只给满足条件的`最小权限`
2、密码符合一定规则的复杂度:
长度大于11位包括大小写字母、数字、和# @ $等特殊字符

root 账号

强烈建议限制在127.0.0.1本地登录

这里延伸一个MySQL socket连接的问题

阅读更多

shell中判断空字符串和有趣的空字符串(延伸篇)

Introduction

作为上一篇 shell中判断空字符串和有趣的空字符串 的延伸补充


经验之谈

字符串判断或者比较

个人建议或者喜欢用 "$param"x = "x" 来判断字符串是否为空

  • 建议加上双引号 "$param"
  • 使用= 、!= 、-n 、-z 等执行判断
    • = 判断两个字符是否相等,相等包括字符创的内容和长度
    • != 判断两个字符是否不相等
    • -n 字符串的长度大于0(非空字符串)当成 not zero记忆
    • -z 字符串的长度等于0(空字符串),当成 zero记忆

阅读更多

shell中判断空字符串和有趣的空字符串

Introduction

Shell 中判断空字符串
以及有趣的空字符串

判断字符串是否为空

Example1

if [[ -z "$str" ]]
then
        echo "1 empty"
fi

Example2

if [[ "$str"x = "x" ]]
then
        echo "2 empty"
fi

Example3

if [[ "$str" = "" ]]
then
        echo "2 empty"
fi

阅读更多

命令行神器 Click教程A篇

摘要

这里介绍一个快速创建命令行的神器click,是一个用Python开发的第三方模块。
相比较Argparse来创建命令行或者参数解析。click确实方便了很多。


官网 的介绍如下:

1
2
3
4
Click is a Python package for creating beautiful command line
interfaces in a composable way with as little code as necessary.
It’s the “Command Line Interface Creation Kit”. It’s highly
configurable but comes with sensible defaults out of the box.

阅读更多

Linux下非交互式sshpass登录

摘要

在命令行非交互的SSH登录的时候,一般我们可以借助于生成用户的公钥私钥对,然后把公钥添加到远程主机的authorized_keys文件,可以实现非交互无密码登录。
其实这里也可以有另外一种方式实现,即用sshpass命令。
这种情况比较适合Mac下用iterm2 SSH登录到远程主机的时候,长时间不操作导致 packet_write_wait: Connection to 192.168.xxx.xxx port 22: Broken pipe问题的解决办法

阅读更多

Centos7下安装Solr服务和Solr基本用法

Requirements

1
2
3
4
root@pts/6 $ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

阅读更多

Linux 下修改或者重命名用户名称或者UID/GID

摘要

在Linux操作系统下怎么样用命令行去修改用户的名称(也就是重命名),或者UID/GID
切记不要手动用vi之类的文本编辑器去修改 /etc/passwd 文件

修改用户名称

Usage:

usermod -l login-name old-name

修改用户的名称 old-name 改成 login-name,别的都没有改变。其实我们也应该考虑是否把用户的HOME目录也改成新的用户。

另外这里有个问题需要注意

阅读更多