返回列表 回复 发帖

if

无论什么编程语言都离不开条件判断。SHELL也不例外。

1、字符串判断
str1 = str2      当两个串有相同内容、长度时为真
str1 != str2      当串str1和str2不等时为真
-n str1        当串的长度大于0时为真(串非空)
-z str1        当串的长度为0时为真(空串)
str1           当串str1为非空时为真

2、数字的判断
int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真
int1 -gt int2    int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2    int1小于int2为真
int1 -le int2    int1小于等于int2为真


3、文件的判断
-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真


4、复杂逻辑判断
-a         与
-o        或
!        非
附件: 您所在的用户组无法下载或查看附件
清理bin-log
不要轻易手动去删除binlog,会导致binlog.index和真实存在的binlog不匹配,而导致expire_logs_day失效


如果之前没有在mysql的配置文件中指定bin_log,就要重新启动mysql
log-slave-updates
当从库同时又是其它库的主库时,log-slave-updates参数是必须要添加的。
从库开启log_bin参数,如果直接往从库里写数据,是可以记录log-bin日志的。但是如果从库通过IO线程读取主库的二进制日志文件,然后通过SQL线程写入数据。是不会记录binlog日志的。也就是说从库从主库上复制的数据,是不会写入从库的binlog日志的。所以从库作为其它从库的主库时,需要在配置文件中添加log-slave-updates参数



2. MySQL支持的复制类型

    基于语句的复制。 在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对服务器上的表所进行的更新之间的冲突,配置:binlog_format = 'STATEMENT'
    基于行的复制。把改变的内容复制过去,而不是把命令在从服务器上执行一遍,从 MySQL 5.0开始支持,配置:binlog_format = 'ROW'
    混合类型的复制。默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制,配置:binlog_format = 'MIXED'



http://369369.blog.51cto.com/319630/790921/
https://www.cnblogs.com/superfat/p/5267449.html
https://www.cnblogs.com/alvin_xp/p/4162249.html
http://blog.csdn.net/u010098331/article/details/50828820
http://blog.csdn.net/l1028386804/article/details/54653691
http://blog.itpub.net/28624388/viewspace-1063901/
返回列表