linux服务器文件传输利器lrzsz

场景

  服务端开发人员经常会遇到的一个场景就是将本地的文件传到服务器上,或者把服务器上的文件下载到本地,那这个时候大家一般会用ftp服务,来完成这件事。但是如果服务器上并没有安装ftp服务的时候,这个操作就显的很繁琐。那有没有轻量的,方便又好用的工具呢?这就要说到我们今天要给诸位介绍的这个小工具了lrzsz

关于lrzsz

  lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,可以用在windows与linux 系统之间的文件传输,体积小速度快。

安装lrzsz

  安装可以用源码安装也可以以所在平台的软件管理工具下载。

1.以centos为例:

1
yum -y install lrzsz

2.源码安装:

1
2
3
4
5
6
7
8
9
10
11
# 下载安装包
wget http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gz
tar -zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
# 编译
./configure –prefix=/usr/local/lrzsz
make
make install
# 把命令加入$PATH
ln -s /usr/local/lrzsz/bin/lrz /usr/bin/rz
ln -s /usr/local/lrzsz/bin/lsz /usr/bin/sz

lrzsz使用

1.sz: 将选定的文件发送(send)到本地机器。
example:

1
sz /home/wwwlog/nginx.error.log

2.rz: 运行该命令会弹出 一个文件选择窗口, 从本地选择文件上传到服务器(receive)。

1
2
#rz命令不使用参数即可,会弹出系统自带文件选择框
rz

xshell or SecureCRT

  在xshell和SecureCRT中,执行sz命令的表现略有不同,xshell会弹出保存位置选项,而CRT采用的是默认位置,这是个配置项。可以依次打开菜单Options -> session options -> X/Y/Zmodem进行设置。

结语

  贼拉好用,隔壁后端大哥都感动哭了。

Mysql不同版本cast/truncate函数对浮点型的处理

Mysql不同版本cast/truncate函数对浮点型的处理

我们不妨先来看一个现象

1
select cast(1/5 as decimal(4,2));

我们先盲猜一下这条SQL的运行结果,如果按照我们的一贯经验,那应该是
0.20,毕竟我们as decimal(4,2)是保留两位小数的。但是实际上并不一定是。
在不同的mysql版本下执行了这条sql:

1
select cast(1/5 as decimal(4,2)) as res,version() as v;

得到的结果如下:

5.6.455.6.365.6.39三个小版本中的表现,不论是cast还是truncate函数,对能整除的操作的保留两位小数
得到的结果都是无法保留末尾是0的小数的,末尾的0会自动被舍弃。

5.7.228.0.15这两个版本表现完全是另一种结果,执行以下SQL:

1
select cast(1/5 as decimal(4,2)) as castRes,truncate(1/5,2) as truncateRes;

得到的结果都是0.20

某次开发过程中遇到了这个Bug,不得其解,记录一下,以示后来人。不过我们也由此得出一个准则,数据格式的format处理还是
尽可能的交给程序去处理,而不是mysql。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×