『壹』 10个运维必知的命令行神器
本文列出10个Unix/Linux命令行下的工具,助于运维工作。以下为详细说明:
1、lftp:用于网站数据的增量备份和镜像,操作如同rsync。
2、ack:一个Perl脚本,为程序员设计,提供高亮显示的匹配字符,为grep的可选替换。
3、calcurse & remind + wyrd:提供日历和日程功能,还有Cycle日历同样优秀。
4、newsbeuter & rsstail:作为RSS阅读工具,方便在命令行下浏览。
5、powertop:帮助用户优化电源使用,识别耗电量大的程序,由Intel公司发布。
6、htop & iotop:用于监控进程、内存和IO负载,提供深入系统性能洞察。
7、ttyrec & ipbt:录制与回放tty操作,Shelr和termrec可实现类似功能。
8、rsyn:SSH文件同步的经典工具,核心算法强大。
9、mtr:将traceroute和ping集成,用于网络诊断。
10、socat & netpipes:socat为多功能网络工具,netpipes则用于命令行下的socket操作。
总结,这些工具在Unix/Linux环境下,对运维工作有显著帮助,它们各有专长,可辅助系统管理和网络操作。
『贰』 命令行下怎样远程控制VLC播放
开宗明义,在Headless ( i.e. without a monitor or input device)的服务器(例如,各类嵌入式「玩具板子」)上如果架起VLC进行多媒体播放,怎样才是最方便的控制方式?
同时,因为希望是可以脚本控制,所以最好是可以做到非互动式的指令。
如下是简单的步骤:
VLC实际上拥有灵活强大的控制方式,由于我们上来就限定了Headless,那么命令行显然是先决条件,VLC文档中已经列出了支持的几种Remote方式:
考虑到三者中rc应该是最强大和灵活的(ncurses需要configure,telnet更多的是互动型,何况rc本身就可以支持telnet访问),我们就focus在rc 接口上。
使能方法非常简单,调用vlc的时候,用:
cvlc -I rc --rc-fake-tty --rc-host <ip>:<port>
注意:如果需要局域网内访问,请填写本机ip,如果只要本机访问,用localhost就可以了
得到如下信息(忽略那些错误吧,毕竟Headless么,很多接口对VLC来说都缺失,但是不影响使用)
直接借助帮助文件, 可见还是非常强大的:
实际上,在一些 讨论 中看到,如果只是需要本机访问,更高效的办法是借助一个unix socket文件,从而通过socket文件来访问,简单说就是将上面提到的-rc-host选项变成-rc-unix然后用一个文件作为输入;
这样可以用类似于形如下面指令的方法来模拟socket访问 (作者以OSX为例,应当是没有问题的):
echo normal | nc -U /Users/vlc.sock
我的例子,Debian中,nc似乎是不适用,更多人推荐用socat (需要安装)
echo “pause” | socat – UNIX-CONNECT:/Users/vlc.sock
上面可以理解成将管道化之后的ECHO字符向这个Unix的Socket发送。可是在我这里死活都会遇到文件connection refused,作为菜鸟,实在无力解决,特别是看到有强者遇到类似问题交叉比较得出可能和特定版本的kernel stock存在bug有关之后,不管看不看得懂,我都理直气壮的放弃了——直接转向了上面提到的host:port的方案。
所以:
如果是互动式,直接 nc <host> <port> ,就可以进入这个接口界面了:
如果不需要互动:
参考上节:
echo status | nc -w 0 <ip> <port>
-w是指示说该命令之后,立刻退出,实际上OSX下并不一定需要,只是为了和下面Linux对照一下。
大致相同,区别只是在非互动式下,
echo status | nc -q 0 <ip> <port>
两者区别只是一个用了' w ait'之意,另外一个是' q uit'罢了,想想还挺风趣....风趣个妹啊,这不是折腾跨平台用户吗?!
至此,该问题解决,不论是想在远程控制无输入(显示)设备上的播放,还是想用脚本对其他线程的VLC播放进行自动化的干预控制,都不成问题了。
——怪不得有那么多人喜欢用VLC啊,我恍然。