interactive_timeout :连接空闲超时时间。与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间。
interactive_timeout和wait_timeout意义虽然相同,但是有使用对象有本质的区别。interactive_timeout针对交互式连接(比如通过mysql客户端连接数据库),wait_timeout针对非交互式连接(比如一般在PHP中使用PDO连接数据库,当然你可以设置CLIENT_INTERACTIVE选项来改变)。所谓的交互式连接,即在mysql_real_connect()函数中使用了CLIENT_INTERACTIVE选项。
wait_timeout:连接空闲超时时间。与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间。可以认为是服务器端连接空闲的时间,空闲超过这个时间将自动关闭。
交互连接:
interactive_timeout 需在mysql_connect()设置CLIENT_INTERACTIVE选项后起作用,并被赋值为wait_timeout; #Mysql自己的客户端mysql命令。
mysql>set global wait_timeout = 60; 对当前交互链接有效; (由于mysql的BUG所有这边必须加global)
mysql>set global interactive_timeout = 60; 对后续起的交互链接有效;
解决MySQL server has gone away
应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题,通常来说,我觉得把wait_timeout设置为10是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间)
本质:
变量wait_timeout:服务器关闭非交互连接之前等待活动的秒数。也就是说你PHP获取一次数据后作计算了,并没有释放Mysql连接句柄,而你处理完后,继续获取数据,这个中间等待的秒数。 为了防止出现这个问题,用了mysql_ping:https://mo2g.com/view/128/
问题:这个秒数,DBA一般写10秒,能否突破和Mysql的Client一样,让它的值和interactive_timeout一样呢?
From:http://www.04007.cn/article/292.html
============================================================================================
总之,Mysql的原生客户端,在设置其wait_timeout的值时不受全局的设置限制,均等于全局(/etc/my.cnf)interactive_timeout的值,而PHP则并不改变全局的值,而是里面配置wait_timeout多少,此次连接就是多少,当然,也提供了类似Mysql自带客户端的参数。
阅读全文
interactive_timeout和wait_timeout意义虽然相同,但是有使用对象有本质的区别。interactive_timeout针对交互式连接(比如通过mysql客户端连接数据库),wait_timeout针对非交互式连接(比如一般在PHP中使用PDO连接数据库,当然你可以设置CLIENT_INTERACTIVE选项来改变)。所谓的交互式连接,即在mysql_real_connect()函数中使用了CLIENT_INTERACTIVE选项。
wait_timeout:连接空闲超时时间。与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间。可以认为是服务器端连接空闲的时间,空闲超过这个时间将自动关闭。
交互连接:
interactive_timeout 需在mysql_connect()设置CLIENT_INTERACTIVE选项后起作用,并被赋值为wait_timeout; #Mysql自己的客户端mysql命令。
mysql>set global wait_timeout = 60; 对当前交互链接有效; (由于mysql的BUG所有这边必须加global)
mysql>set global interactive_timeout = 60; 对后续起的交互链接有效;
解决MySQL server has gone away
应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题,通常来说,我觉得把wait_timeout设置为10是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间)
本质:
变量wait_timeout:服务器关闭非交互连接之前等待活动的秒数。也就是说你PHP获取一次数据后作计算了,并没有释放Mysql连接句柄,而你处理完后,继续获取数据,这个中间等待的秒数。 为了防止出现这个问题,用了mysql_ping:https://mo2g.com/view/128/
问题:这个秒数,DBA一般写10秒,能否突破和Mysql的Client一样,让它的值和interactive_timeout一样呢?
From:http://www.04007.cn/article/292.html
============================================================================================
总之,Mysql的原生客户端,在设置其wait_timeout的值时不受全局的设置限制,均等于全局(/etc/my.cnf)interactive_timeout的值,而PHP则并不改变全局的值,而是里面配置wait_timeout多少,此次连接就是多少,当然,也提供了类似Mysql自带客户端的参数。
阅读全文
[实践OK]用killall -0监控服务的注意事项
Unix/LinuxC技术 jack 2017-11-14 10:58
背景:MHA里面有的LVS有兄弟用这样一句,也不会LVS,好像是用来检测Mysql的进程否还活着的Shell,vrrp_script chk_mysqld { script "killall -0 mysqld && exit 0 || exit 1"。这句是否完备,实践发现如果对于多进程模型,可能并不完备,如下实践。
后台服务需要不间断运行,意外退出后,需要将其重新拉起。常常可以通过向进程发送信号0,然后根据返回值来判断一个进程是否存在。比如进程名字为A,那么
exsit="killall -0 A;echo $?"
exsit为0就表示进程A存在,否则表示不存在。
然而,当有多个进程名字都是A的时候,只有在全部名字为A的进程都退出后,exsit才非0,所以这种监控方法并不太适合多进程环境(为了负载均衡,服务器常常采用多进程)。
我们来看例子。
testbin.c
make testbin
g++ testbin.cpp -o testbin
然后我们运行他。
1.启动父子总共5个进程。
./testbin
Start.....
summer 42187 start.......
summer 42186 start.......
summer 42185 start.......
summer 42184 start.......
2.发送killall -0
killall -0 testbin && echo 0 || echo 1
0
发现有进程接收了信号
3..杀掉一个子进程
ps aux|grep testbin
root 45125 0.0 0.1 11880 1048 pts/0 S+ 10:52 0:00 ./testbin
root 45126 0.0 0.0 11748 392 pts/0 S+ 10:52 0:00 ./testbin
root 45127 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
root 45128 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
root 45129 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
kill -s 9 PID
----------------
kill -s 9 45125
kill -s 9 45126
kill -s 9 45129
killall -0 testbin && echo 0 || echo 1
0
killall -0 testbin && echo 0 || echo 1
0
最后还剩下一个进程了:
ps aux|grep testbin
root 45128 0.0 0.0 11880 400 pts/0 S 10:52 0:00 ./testbin
killall -0 testbin && echo 0 || echo 1
0
注意此时这个子进程成了僵尸进程。虽然现在只有4个进程,但是killall -0发出的信号仍然被接收,所以返回0.再杀一个,只剩3个所以仍然又能进程接收相关信号,返回0.
4..killall杀掉所有的父子进程
kill -s 9 45128
此时没有进程接收信号,返回1.
killall -0 testbin && echo 0 || echo 1
testbin: no process killed
1
实践源来自:http://blog.csdn.net/wjj547670933/article/details/44535761
后台服务需要不间断运行,意外退出后,需要将其重新拉起。常常可以通过向进程发送信号0,然后根据返回值来判断一个进程是否存在。比如进程名字为A,那么
exsit="killall -0 A;echo $?"
exsit为0就表示进程A存在,否则表示不存在。
然而,当有多个进程名字都是A的时候,只有在全部名字为A的进程都退出后,exsit才非0,所以这种监控方法并不太适合多进程环境(为了负载均衡,服务器常常采用多进程)。
我们来看例子。
testbin.c
make testbin
g++ testbin.cpp -o testbin
然后我们运行他。
1.启动父子总共5个进程。
./testbin
Start.....
summer 42187 start.......
summer 42186 start.......
summer 42185 start.......
summer 42184 start.......
2.发送killall -0
killall -0 testbin && echo 0 || echo 1
0
发现有进程接收了信号
3..杀掉一个子进程
ps aux|grep testbin
root 45125 0.0 0.1 11880 1048 pts/0 S+ 10:52 0:00 ./testbin
root 45126 0.0 0.0 11748 392 pts/0 S+ 10:52 0:00 ./testbin
root 45127 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
root 45128 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
root 45129 0.0 0.0 11880 400 pts/0 S+ 10:52 0:00 ./testbin
kill -s 9 PID
----------------
kill -s 9 45125
kill -s 9 45126
kill -s 9 45129
killall -0 testbin && echo 0 || echo 1
0
killall -0 testbin && echo 0 || echo 1
0
最后还剩下一个进程了:
ps aux|grep testbin
root 45128 0.0 0.0 11880 400 pts/0 S 10:52 0:00 ./testbin
killall -0 testbin && echo 0 || echo 1
0
注意此时这个子进程成了僵尸进程。虽然现在只有4个进程,但是killall -0发出的信号仍然被接收,所以返回0.再杀一个,只剩3个所以仍然又能进程接收相关信号,返回0.
4..killall杀掉所有的父子进程
kill -s 9 45128
此时没有进程接收信号,返回1.
killall -0 testbin && echo 0 || echo 1
testbin: no process killed
1
实践源来自:http://blog.csdn.net/wjj547670933/article/details/44535761
来自:https://www.zhihu.com/question/20019419
The -u tells Git to remember the parameters, so that next time we can simply run git push and Git will know what to do.相当于第一次串门的时候你登了个记办了个vip。。以后再来就知道是你来了。不用脱裤子搜身了
链接:https://www.zhihu.com/question/20019419/answer/80590142
The -u tells Git to remember the parameters, so that next time we can simply run git push and Git will know what to do.相当于第一次串门的时候你登了个记办了个vip。。以后再来就知道是你来了。不用脱裤子搜身了
链接:https://www.zhihu.com/question/20019419/answer/80590142
C语言中的数据对齐问题,内存中的存储并不等于其所包含元素的宽度之和。
Unix/LinuxC技术 jack 2017-11-2 20:44
http://m.blog.csdn.net/shen_gan/article/details/8167715
由于git的index文件出错。
需要删除.git/index文件,
然后运行git reset,重新生成index文件。
git reset还可以删除已经commit,但未push上去的信息。
From:https://my.oschina.net/dyxp/blog/380642
需要删除.git/index文件,
然后运行git reset,重新生成index文件。
git reset还可以删除已经commit,但未push上去的信息。
From:https://my.oschina.net/dyxp/blog/380642
[实践OK]FreeBSD/ux系统下history命令的记录如何删除
Unix/LinuxC技术 jack 2017-10-14 01:24
FreeBSD11.1好像不是这样的,清空/root/.bash_history没有用:在 /root/.history里,不是.bash_history。
1000 1:10 mysql -S /tmp/mysql.sock
1002 1:26 vi /root/.bash_history
history命令的記錄如何刪除?
1、修改/etc/profile將HISTSIZE=1000改成0或1
清除用戶home路徑下.bash_history
2、立即清空裏的history當前曆史命令的記錄
history -c
3、bash執行命令時不是馬上把命令名稱寫入history文件的,而是存放在內部的buffer中,等bash退出時會一並寫入。
不過,可以調用'history -w'命令要求bash立即更新history文件。
history -w
1000 1:10 mysql -S /tmp/mysql.sock
1002 1:26 vi /root/.bash_history
history命令的記錄如何刪除?
1、修改/etc/profile將HISTSIZE=1000改成0或1
清除用戶home路徑下.bash_history
2、立即清空裏的history當前曆史命令的記錄
history -c
3、bash執行命令時不是馬上把命令名稱寫入history文件的,而是存放在內部的buffer中,等bash退出時會一並寫入。
不過,可以調用'history -w'命令要求bash立即更新history文件。
history -w
[实践OK]自定义Linux/FreeBSD 终端/ssh登录前后的欢迎信息
Unix/LinuxC技术 jack 2017-10-13 14:36
Linux/FreeBSD 终端/ssh登录前后的欢迎信息修改,均无问题,实践Ok,操作如下:
cat /etc/motd
Welcome to jackxiang's Compute Service !
From:http://xoyabc.blog.51cto.com/7401264/1679402
cat /etc/motd
Welcome to jackxiang's Compute Service !
From:http://xoyabc.blog.51cto.com/7401264/1679402
[实践OK]vim在FreeBSD下退出时SecureCRT的Tab标签出现Thanks for flying Vim的取消方法。
Unix/LinuxC技术 jack 2017-10-13 11:29
解决办法:
vi ~/.vimrc
FreeBSD下实践OK:
最后修改为:
SecureCRT显示:
root@jackxiang_owncloud_tools_diff_nginx_php_mysql_redis_47_94_8*_23*:/root
连接字串来自:https://git.codingallnight.com/chris/dotfiles/commit/46921501e65ab5c731b82280d0497680ff31418e
=================================================
'titleold' 選項。替換固定的字符串 "Thanks for flying Vim",用來在退出時設置標題。
let &titleold=getcwd()
From:http://vim.wikia.com/wiki/Show_a_useful_title_on_exit_in_an_xterm
My current ~/.vimrc contains (in part)
set title
set titleold=""
set titlestring=VIM:\ %F
From:https://github.com/lazywei/vim-doc-tw/blob/master/doc/version5.twx
More:http://vim.wikia.com/wiki/Show_a_useful_title_on_exit_in_an_xterm
vi ~/.vimrc
FreeBSD下实践OK:
最后修改为:
SecureCRT显示:
root@jackxiang_owncloud_tools_diff_nginx_php_mysql_redis_47_94_8*_23*:/root
连接字串来自:https://git.codingallnight.com/chris/dotfiles/commit/46921501e65ab5c731b82280d0497680ff31418e
=================================================
'titleold' 選項。替換固定的字符串 "Thanks for flying Vim",用來在退出時設置標題。
let &titleold=getcwd()
From:http://vim.wikia.com/wiki/Show_a_useful_title_on_exit_in_an_xterm
My current ~/.vimrc contains (in part)
set title
set titleold=""
set titlestring=VIM:\ %F
From:https://github.com/lazywei/vim-doc-tw/blob/master/doc/version5.twx
More:http://vim.wikia.com/wiki/Show_a_useful_title_on_exit_in_an_xterm
FreeBSD Install Strace,不支持AMD的64位CPU, strace-4.5.18_1 is only for i386, while you are running amd64.。
Unix/LinuxC技术 jack 2017-10-13 10:12
cd /usr/ports/devel/strace/ && make install clean
A package is not available for ports marked as: Forbidden / Broken / Ignore / Restricted
PKGNAME: strace
ONLY_FOR_ARCHS: i386 #不支持AMD.
distinfo:
SHA256 (strace-4.5.18.tar.bz2) = 95e7b7470e04f22c3ec8dc6d0b1fdd8944306cb5313c84c4545cd83abada26d0
SIZE (strace-4.5.18.tar.bz2) = 480973
Install strace
First update FreeBSD ports collection and install strace from /usr/ports/devel/strace:
# portsnap fetch update
# cd /usr/ports/devel/strace
# make install clean
From:https://www.cyberciti.biz/faq/howto-installl-strace-under-freebsd/
A package is not available for ports marked as: Forbidden / Broken / Ignore / Restricted
PKGNAME: strace
ONLY_FOR_ARCHS: i386 #不支持AMD.
distinfo:
SHA256 (strace-4.5.18.tar.bz2) = 95e7b7470e04f22c3ec8dc6d0b1fdd8944306cb5313c84c4545cd83abada26d0
SIZE (strace-4.5.18.tar.bz2) = 480973
Install strace
First update FreeBSD ports collection and install strace from /usr/ports/devel/strace:
# portsnap fetch update
# cd /usr/ports/devel/strace
# make install clean
From:https://www.cyberciti.biz/faq/howto-installl-strace-under-freebsd/
autocrop在CentOS7里的安装,主要是python2-pip的elrepo.repo可用源是关键。
Unix/LinuxC技术 jack 2017-10-12 11:19
人脸识别项目的开源测试程序及代码: https://github.com/Insightzen/autocrop ,要Python2.7以上,得选CentOS7,6的版本低,得编译,还需要python2-pip,得找一个源,epll默认没有,得找一个扩展源,如下:
CentOS7的默认Python版本:Python 2.7.5 ,而autocrop需要装:python2-pip ,
得找一个源,CentOS7下面用Fedora的源,放到,/etc/yum.repos.d,如下:
下载文件
CentOS7的默认Python版本:Python 2.7.5 ,而autocrop需要装:python2-pip ,
得找一个源,CentOS7下面用Fedora的源,放到,/etc/yum.repos.d,如下:
下载文件
[实践OK]FreeBSD 11.1 的 nslookup 、dig 指令,git和nc命令,CentOS如何只知道命令不知道哪个包,而通过YUM的provides命令反查nslookup所在的软件包的?
Unix/LinuxC技术 jack 2017-10-11 22:29
dig 是 bind-tools 软件包的一部分,运行以下命令安装:
pkg install dns/bind-tools
第一个问题,FreeBSD 10 之後的版本改用unbound 代替了bind
所以已經沒有 nslookup , dig 等指令
可以改用host , drill 等指令
但如果還是習慣 nslookup的話
可以安裝bind-tools 套件
#cd /usr/ports/dns/bind-tools
#make install
安裝完後看看是否真的出現
# which nslookup
/usr/local/bin/nslookup
From:http://blog.sina.com.tw/helloworld/article.php?entryid=651089
cd /usr/ports/devel/git/ && make install clean
nc FreeBSD自带,而netcat需要自己安装,如下:
cd /usr/ports/net/netcat/ && make install clean
第二个问题,关于CentOS如何只知道命令不知道哪个包,而通过YUM的provides命令反查nslookup所在的软件包的?
32:bind-utils-9.9.4-51.el7.x86_64 : Utilities for querying DNS name servers
源 :updates
匹配来源:
文件名 :/usr/bin/nslookup
yum provides *bin/nslookup
32:bind-utils-9.9.4-38.el7_3.3.x86_64 : Utilities for querying DNS name servers
源 :@updates
匹配来源:
文件名 :/usr/bin/nslookup
================================================
nslookup這個指令對於網路除錯來說,應該是很多人都很習慣的工具
如果發現安裝好的Linux系統少了這個指令
[root@example ~]# nslookup myip.pass.tw
-bash: nslookup: command not found
[root@example ~]# which nslookup
/usr/bin/which: no nslookup in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
直接安裝看看咧? 找不到這個套件名稱
[root@example ~]# yum -y install nslookup
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
No package nslookup available.
Error: Nothing to do
試試 yum provides 看看nslookup 是包含在哪個套件中
[root@example ~]# yum provides nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Warning: 3.0.x versions of yum would erroneously match against filenames.
You can use "*/nslookup" and/or "*bin/nslookup" to get that behaviour
No Matches found
依提示再搜尋一下,可以發現包含在bind-utils 套件中
[root@example ~]# yum provides */nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
base/filelists_db | 6.4 MB 00:00
epel/filelists_db | 7.7 MB 00:01
extras/filelists_db | 25 kB 00:00
updates/filelists_db | 1.5 MB 00:00
zsh-4.3.11-4.el6.centos.2.x86_64 : A powerful interactive shell
Repo : base
Matched from:
Filename : /usr/share/zsh/4.3.11/functions/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6.x86_64 : Utilities for querying DNS name servers
Repo : base
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.2.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.1.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
[root@example ~]# yum provides *bin/nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* updates: mirrors.linode.com
32:bind-utils-9.8.2-0.62.rc1.el6.x86_64 : Utilities for querying DNS name servers
Repo : base
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.2.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.1.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
安裝 bind-utils
[root@example ~]# yum -y install bind-utils
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package bind-utils.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
--> Processing Dependency: bind-libs = 32:9.8.2-0.62.rc1.el6_9.4 for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: liblwres.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisccfg.so.82()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisccc.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisc.so.83()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libdns.so.81()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libbind9.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Running transaction check
---> Package bind-libs.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Installing:
bind-utils x86_64 32:9.8.2-0.62.rc1.el6_9.4 updates 189 k
Installing for dependencies:
bind-libs x86_64 32:9.8.2-0.62.rc1.el6_9.4 updates 892 k
Transaction Summary
=============================================================================================================================================================================================================================================
Install 2 Package(s)
Total download size: 1.1 M
Installed size: 2.7 M
Downloading Packages:
(1/2): bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64.rpm | 892 kB 00:00
(2/2): bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64.rpm | 189 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 44 MB/s | 1.1 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 32:bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64 1/2
Installing : 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 2/2
Verifying : 32:bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64 1/2
Verifying : 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 2/2
Installed:
bind-utils.x86_64 32:9.8.2-0.62.rc1.el6_9.4
Dependency Installed:
bind-libs.x86_64 32:9.8.2-0.62.rc1.el6_9.4
Complete!
来自:http://blog.sina.com.tw/helloworld/article.php?pbgid=170996&entryid=657249
pkg install dns/bind-tools
第一个问题,FreeBSD 10 之後的版本改用unbound 代替了bind
所以已經沒有 nslookup , dig 等指令
可以改用host , drill 等指令
但如果還是習慣 nslookup的話
可以安裝bind-tools 套件
#cd /usr/ports/dns/bind-tools
#make install
安裝完後看看是否真的出現
# which nslookup
/usr/local/bin/nslookup
From:http://blog.sina.com.tw/helloworld/article.php?entryid=651089
cd /usr/ports/devel/git/ && make install clean
nc FreeBSD自带,而netcat需要自己安装,如下:
cd /usr/ports/net/netcat/ && make install clean
第二个问题,关于CentOS如何只知道命令不知道哪个包,而通过YUM的provides命令反查nslookup所在的软件包的?
32:bind-utils-9.9.4-51.el7.x86_64 : Utilities for querying DNS name servers
源 :updates
匹配来源:
文件名 :/usr/bin/nslookup
yum provides *bin/nslookup
32:bind-utils-9.9.4-38.el7_3.3.x86_64 : Utilities for querying DNS name servers
源 :@updates
匹配来源:
文件名 :/usr/bin/nslookup
================================================
nslookup這個指令對於網路除錯來說,應該是很多人都很習慣的工具
如果發現安裝好的Linux系統少了這個指令
[root@example ~]# nslookup myip.pass.tw
-bash: nslookup: command not found
[root@example ~]# which nslookup
/usr/bin/which: no nslookup in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
直接安裝看看咧? 找不到這個套件名稱
[root@example ~]# yum -y install nslookup
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
No package nslookup available.
Error: Nothing to do
試試 yum provides 看看nslookup 是包含在哪個套件中
[root@example ~]# yum provides nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Warning: 3.0.x versions of yum would erroneously match against filenames.
You can use "*/nslookup" and/or "*bin/nslookup" to get that behaviour
No Matches found
依提示再搜尋一下,可以發現包含在bind-utils 套件中
[root@example ~]# yum provides */nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirrors.linode.com
* updates: mirrors.linode.com
base/filelists_db | 6.4 MB 00:00
epel/filelists_db | 7.7 MB 00:01
extras/filelists_db | 25 kB 00:00
updates/filelists_db | 1.5 MB 00:00
zsh-4.3.11-4.el6.centos.2.x86_64 : A powerful interactive shell
Repo : base
Matched from:
Filename : /usr/share/zsh/4.3.11/functions/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6.x86_64 : Utilities for querying DNS name servers
Repo : base
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.2.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.1.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
[root@example ~]# yum provides *bin/nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* updates: mirrors.linode.com
32:bind-utils-9.8.2-0.62.rc1.el6.x86_64 : Utilities for querying DNS name servers
Repo : base
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.2.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
32:bind-utils-9.8.2-0.62.rc1.el6_9.1.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
安裝 bind-utils
[root@example ~]# yum -y install bind-utils
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package bind-utils.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
--> Processing Dependency: bind-libs = 32:9.8.2-0.62.rc1.el6_9.4 for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: liblwres.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisccfg.so.82()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisccc.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libisc.so.83()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libdns.so.81()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Processing Dependency: libbind9.so.80()(64bit) for package: 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64
--> Running transaction check
---> Package bind-libs.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Installing:
bind-utils x86_64 32:9.8.2-0.62.rc1.el6_9.4 updates 189 k
Installing for dependencies:
bind-libs x86_64 32:9.8.2-0.62.rc1.el6_9.4 updates 892 k
Transaction Summary
=============================================================================================================================================================================================================================================
Install 2 Package(s)
Total download size: 1.1 M
Installed size: 2.7 M
Downloading Packages:
(1/2): bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64.rpm | 892 kB 00:00
(2/2): bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64.rpm | 189 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 44 MB/s | 1.1 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 32:bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64 1/2
Installing : 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 2/2
Verifying : 32:bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64 1/2
Verifying : 32:bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 2/2
Installed:
bind-utils.x86_64 32:9.8.2-0.62.rc1.el6_9.4
Dependency Installed:
bind-libs.x86_64 32:9.8.2-0.62.rc1.el6_9.4
Complete!
来自:http://blog.sina.com.tw/helloworld/article.php?pbgid=170996&entryid=657249
背景:有的SSH连接提示 host key,很麻烦,如何取消。
两步:
一)删除先前的指纹文件:
来自文件:D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
文件里配置:S:"Host Key Database Location"=D:\Program Files\SecureCRT\ssh_tmp\KnownHosts\
上面的SSH2.ini有可能升级有多个,都统一找一下里面的路径并删除掉有newhostkey问题的IP.pub,都统一批量改成二)里面的配置项。
bash-shell下操作如下:
/d/Program Files/SecureCRT7.3/ssh_tmp/KnownHosts
删除掉:rm -rf '47.94.88.237[47.94.88.237]22.pub
二)配置文件修改,如下:
From:
D:"Automatically Accept Host Keys"=00000000
To:
D:"Automatically Accept Host Keys"=00000001
Save the change, restart SecureCRT.
D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
内容如下:
S:"Host Key Database Location"=D:\Program Files\SecureCRT\ssh_tmp\KnownHosts\
S:"Host Key Database Location V2"=${VDS_CONFIG_PATH}\KnownHosts\
D:"Automatically Accept Host Keys"=00000001
整个配置如下:
D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
来自:http://blog.csdn.net/warcraftzhaochen/article/details/73867385
两步:
一)删除先前的指纹文件:
来自文件:D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
文件里配置:S:"Host Key Database Location"=D:\Program Files\SecureCRT\ssh_tmp\KnownHosts\
上面的SSH2.ini有可能升级有多个,都统一找一下里面的路径并删除掉有newhostkey问题的IP.pub,都统一批量改成二)里面的配置项。
bash-shell下操作如下:
/d/Program Files/SecureCRT7.3/ssh_tmp/KnownHosts
删除掉:rm -rf '47.94.88.237[47.94.88.237]22.pub
二)配置文件修改,如下:
From:
D:"Automatically Accept Host Keys"=00000000
To:
D:"Automatically Accept Host Keys"=00000001
Save the change, restart SecureCRT.
D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
内容如下:
S:"Host Key Database Location"=D:\Program Files\SecureCRT\ssh_tmp\KnownHosts\
S:"Host Key Database Location V2"=${VDS_CONFIG_PATH}\KnownHosts\
D:"Automatically Accept Host Keys"=00000001
整个配置如下:
D:\Program Files\SecureCRT\ssh_tmp\SSH2.ini
来自:http://blog.csdn.net/warcraftzhaochen/article/details/73867385
[实践Ok]Freebsd 安装Redis
Unix/LinuxC技术 jack 2017-10-10 00:13
在CentOS下面打Rpm包时用 make install DESTDIR=%{buildroot} ,而在FreeBSD下用make PREFIX=/usr/local/redis install 好像也成:
cd /usr/ports/databases/redis
make PREFIX=/usr/local/redis install
/usr/local/redis/bin/redis-server
/usr/local/redis/bin/redis-cli
/usr/local/redis/bin/redis-check-rdb
/usr/local/redis/bin/redis-benchmark
/usr/local/redis/bin/redis-sentinel
From:https://www.iyunv.com/thread-51148-1-1.html
最新版本5.0:
/usr/local/bin/gmake PREFIX=/usr/local/redis/ install clean
cd /usr/ports/databases/redis
make PREFIX=/usr/local/redis install
/usr/local/redis/bin/redis-server
/usr/local/redis/bin/redis-cli
/usr/local/redis/bin/redis-check-rdb
/usr/local/redis/bin/redis-benchmark
/usr/local/redis/bin/redis-sentinel
From:https://www.iyunv.com/thread-51148-1-1.html
最新版本5.0:
/usr/local/bin/gmake PREFIX=/usr/local/redis/ install clean
The MySQL server is running with the --read-only option so it cannot execute
解决办法:
mysql> set global read_only=0;
(关掉新主库的只读属性)
flush privileges;
set global read_only=1;(读写属相)
flush privileges;
出现:
The MySQL server is running with the --read-only option so it cannot execute
来自:http://www.cnblogs.com/xionghui/archive/2013/03/01/2939342.html
解决办法:
mysql> set global read_only=0;
(关掉新主库的只读属性)
flush privileges;
set global read_only=1;(读写属相)
flush privileges;
出现:
The MySQL server is running with the --read-only option so it cannot execute
来自:http://www.cnblogs.com/xionghui/archive/2013/03/01/2939342.html
如何指定进程运行的CPU(命令行 taskset)
Unix/LinuxC技术 jack 2017-10-6 20:55
进程启动时指定CPU
命令taskset -c 1 ./redis-server ../redis.conf
taskset
taskset是LINUX提供的一个命令(ubuntu系统可能需要自行安装,schedutils package)。他可以让某个程序运行在某个(或)某些CPU上。
指定进程运行在某个特定的CPU上
命令taskset -pc 3 21184
显示结果:
pid 21184's current affinity list: 0-23
pid 21184's new affinity list: 3
注:3表示CPU将只会运行在第4个CPU上(从0开始计数)。
来自:http://blog.csdn.net/xluren/article/details/43202201
http://www.361way.com/linux-context-switch/5131.html
命令taskset -c 1 ./redis-server ../redis.conf
taskset
taskset是LINUX提供的一个命令(ubuntu系统可能需要自行安装,schedutils package)。他可以让某个程序运行在某个(或)某些CPU上。
指定进程运行在某个特定的CPU上
命令taskset -pc 3 21184
显示结果:
pid 21184's current affinity list: 0-23
pid 21184's new affinity list: 3
注:3表示CPU将只会运行在第4个CPU上(从0开始计数)。
来自:http://blog.csdn.net/xluren/article/details/43202201
http://www.361way.com/linux-context-switch/5131.html
使用sa、sar命令统计系统资源使用情况,sadc 在sysstat包里,通过yum install sysstat安装 iostat。
Unix/LinuxC技术 jack 2017-10-6 20:48
用途:用于查看当前服务器读写磁盘情况.
iostat -x 1
5 8781 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 879 0.0 [kauditd]
5 8950 0.0 CROND
5 8951 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9116 0.0 CROND
5 9117 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9286 0.0 CROND
5 9287 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 930 0.0 CROND
5 931 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 94 0.0 [md_misc/5]
5 9489 0.0 CROND
5 9490 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9659 0.0 CROND
5 9660 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9829 0.0 CROND
5 9830 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
首先需要安装一个包
# rpm -qa sysstat
sysstat-7.0.2-3.el5
这个包安装了一些很有用的文件
# rpm -ql sysstat
/usr/lib/sa/sadc
rpm -qa|grep sysstat
rpm -ql sysstat|grep sadc
/usr/lib64/sa/sadc
=====================================================
要启动SAR,必须通过cron工具以周期性的间隔启动。
安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为:
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
这里用到了两个命令
/usr/lib/sa/sa1
/usr/lib/sa/sa2
sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。sa1命令还确保每天使用不同的文件。每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。二进制日志文件存放在/var/log/sa/目录下,命名为sa${DATE}。
sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在/var/log/sa/目录下,命名为sar${DATE}。
这两个命令要配合着使用。
(强烈建议看一下这两个命令的脚本)
查看一下/usr/lib/sa/sa1脚本,里面执行这样一句命令:
/usr/lib/sa/sadc -F -L 1 1 -
-F:强制指定一个储存文件,如果文件已存在,就将其转换成sa的二进制文件形式。
-L:给sa文件加互斥锁,不能让两个sadc进程同时写一个sa文件。
跟据sa1脚本中的命令,我们也可以手动的创建sa二进制文件,使用/usr/lib/sa/sadc命令,
# /usr/lib/sa/sadc 1 10 /tmp/jaylin_sa
上述命令的作用是:每隔1s写一条记录,写10条,存放到二进制文件/tmp/jaylin_sa中。
查看一下/usr/lib/sa/sa2脚本,里面执行这样一句命令:
/usr/bin/sar -A -f /var/log/sa/sa${DATE} > /var/log/sa/sar${DATE}
-A:列出所有存储在/var/log/sa/sa${DATE}里的统计信息。
-f:指定将要转储的sa文件,默认的参数值为/var/log/sa/sa${DATE}。
From:
http://linuxguest.blog.51cto.com/195664/541178/
iostat -x 1
5 8781 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 879 0.0 [kauditd]
5 8950 0.0 CROND
5 8951 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9116 0.0 CROND
5 9117 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9286 0.0 CROND
5 9287 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 930 0.0 CROND
5 931 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 94 0.0 [md_misc/5]
5 9489 0.0 CROND
5 9490 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9659 0.0 CROND
5 9660 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
5 9829 0.0 CROND
5 9830 0.0 /usr/lib64/sa/sadc -F -L -S DISK 1 1 -
首先需要安装一个包
# rpm -qa sysstat
sysstat-7.0.2-3.el5
这个包安装了一些很有用的文件
# rpm -ql sysstat
/usr/lib/sa/sadc
rpm -qa|grep sysstat
rpm -ql sysstat|grep sadc
/usr/lib64/sa/sadc
=====================================================
要启动SAR,必须通过cron工具以周期性的间隔启动。
安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为:
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
这里用到了两个命令
/usr/lib/sa/sa1
/usr/lib/sa/sa2
sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。sa1命令还确保每天使用不同的文件。每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。二进制日志文件存放在/var/log/sa/目录下,命名为sa${DATE}。
sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在/var/log/sa/目录下,命名为sar${DATE}。
这两个命令要配合着使用。
(强烈建议看一下这两个命令的脚本)
查看一下/usr/lib/sa/sa1脚本,里面执行这样一句命令:
/usr/lib/sa/sadc -F -L 1 1 -
-F:强制指定一个储存文件,如果文件已存在,就将其转换成sa的二进制文件形式。
-L:给sa文件加互斥锁,不能让两个sadc进程同时写一个sa文件。
跟据sa1脚本中的命令,我们也可以手动的创建sa二进制文件,使用/usr/lib/sa/sadc命令,
# /usr/lib/sa/sadc 1 10 /tmp/jaylin_sa
上述命令的作用是:每隔1s写一条记录,写10条,存放到二进制文件/tmp/jaylin_sa中。
查看一下/usr/lib/sa/sa2脚本,里面执行这样一句命令:
/usr/bin/sar -A -f /var/log/sa/sa${DATE} > /var/log/sa/sar${DATE}
-A:列出所有存储在/var/log/sa/sa${DATE}里的统计信息。
-f:指定将要转储的sa文件,默认的参数值为/var/log/sa/sa${DATE}。
From:
http://linuxguest.blog.51cto.com/195664/541178/
[实践OK]FreeBsd: 安装 rz , sz 工具包lrzsz。
Unix/LinuxC技术 jack 2017-10-5 18:48
[实践OK]FreeBSD中安装pkg:https://jackxiang.com/post/10436/
安装包安装方式:
pkg install -y lrzsz
Port安装方式:
cd /usr/ports/comms/lrzsz
make install clean
备注:这种方式为编译安装,安装时同样需要联网下载。
lrzsz的操作上传下载的文件列表:
/usr/local/bin/lrx
/usr/local/bin/lrz
/usr/local/bin/lsb
/usr/local/bin/lrb
/usr/local/bin/lsx
/usr/local/bin/lsz
第一步:软链接:
ln -sf /usr/local/bin/lrz /usr/local/bin/rz
ln -sf /usr/local/bin/lsz /usr/local/bin/sz
第二步:
vim ~/.bashrc
在文件末尾添加:
export PATH=$PATH:/usr/local/bin
source ~/.bashrc
Linux可以,Freebsd上不行:
cat << EOF >> ~/.bashrc
export PATH=$PATH:/usr/local/bin
EOF
Cause
This problem may be caused by improper handling of escape sequences embedded in the files being uploaded.
Resolution
Use the -e or --escape option on lrz, which escapes control characters (Z). For example, type, lrz -e. Some Zmodem clients expect escaping, while others do not.
Notes
Note, some installations of lrzsz do not have the "sz" or "rz" commands, only "lsz" and "lrz". You can edit your .login file and add lines like "alias sz lsz" and "alias rz lrz -e". This way, when you type "sz" or "rz", it will automatically execute the right program with the right options.
lrzsz is part of the FreeBSD ports collection. It contains a set of shell commands for sending and receiving files via the X/Y/ZMODEM protocols. Your SSH or Telnet client must support them for transfers to work.
阅读全文
安装包安装方式:
pkg install -y lrzsz
Port安装方式:
cd /usr/ports/comms/lrzsz
make install clean
备注:这种方式为编译安装,安装时同样需要联网下载。
lrzsz的操作上传下载的文件列表:
/usr/local/bin/lrx
/usr/local/bin/lrz
/usr/local/bin/lsb
/usr/local/bin/lrb
/usr/local/bin/lsx
/usr/local/bin/lsz
第一步:软链接:
ln -sf /usr/local/bin/lrz /usr/local/bin/rz
ln -sf /usr/local/bin/lsz /usr/local/bin/sz
第二步:
vim ~/.bashrc
在文件末尾添加:
export PATH=$PATH:/usr/local/bin
source ~/.bashrc
Linux可以,Freebsd上不行:
cat << EOF >> ~/.bashrc
export PATH=$PATH:/usr/local/bin
EOF
Cause
This problem may be caused by improper handling of escape sequences embedded in the files being uploaded.
Resolution
Use the -e or --escape option on lrz, which escapes control characters (Z). For example, type, lrz -e. Some Zmodem clients expect escaping, while others do not.
Notes
Note, some installations of lrzsz do not have the "sz" or "rz" commands, only "lsz" and "lrz". You can edit your .login file and add lines like "alias sz lsz" and "alias rz lrz -e". This way, when you type "sz" or "rz", it will automatically execute the right program with the right options.
lrzsz is part of the FreeBSD ports collection. It contains a set of shell commands for sending and receiving files via the X/Y/ZMODEM protocols. Your SSH or Telnet client must support them for transfers to work.
阅读全文




