-
简单的 Shell Singleton 脚本
有的时候, 多线程能提高性能, 但偶尔也可能希望有且只有一个线程在运行, 例如系统维护脚本, 如果前一个脚本还没有完成, 而下一次检查时间到了, 那不小心同一个脚本可能就会被运行多次了. 最近发现 pidof 命令很适合此目的, 下面是样本脚本: #!/bin/bash script_name=`basename $0` if [ “$(pidof -x $script_name|wc -w )” -gt 2 ]; then echo ‘More than one instance is running. Exiting…’ exit 1 fi echo ‘Just me alone, get to work…’ for i in 1 2 3 4 5; do echo $i sleep…
-
团队要塞(Team Fortress)2 与 Ubuntu 12.10
感谢 AMD, 赶在周末前发布了13.1版本的 Catalyst 驱动. 安装之前可能会提示需要 linux-header, 可以按照以下命令安装(需要root): $ uname -a Linux raymond-Z68X 3.5.0-22-generic #34-Ubuntu SMP Tue Jan 8 21:47:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ apt-get install linux-headers-3.5.0-22.generic 然后再安装 Catalyst 即可. Team Fortress 2 的安装就和其它平台一样在 Steam 里完成. 下面是我的配置下的一些截图, TF2 运行在主屏. TF2视频方面的设置. 准备开打 🙂 任何时候, Gnome Shell 依旧响应迅速, 可以随时切换到 Shell 或者其它软件窗口. 玩了一局, 还好没有崩溃…
-
笔记: Unicorn & LSB init.d
总算找到一个好用的脚本, 能将多个 unicorn 实例集成到 Linux 的系统服务中, 这样就不必担心重新启动后 unicorn 是否运行了. /etc/init.d/unicorn: #!/bin/sh # # init.d script for single or multiple unicorn installations. Expects at least one .conf # file in /etc/unicorn # # Modified by [email protected] http://github.com/jaygooby # based on http://gist.github.com/308216 by http://github.com/mguterl # ## A sample /etc/unicorn/my_app.conf ## ## RAILS_ENV=production ## RAILS_ROOT=/var/apps/www/my_app/current # # This…
-
笔记: Linux CLI 点滴
尽管使用 Linux 很多年了, 我还是经常发现: 哇, 原来还有更方便的方法! 1, 调用前面一条后台执行命令的 PID: $! 是的, 就是这么简单. 如果想终止前面一条后台运行的指令, 那么 kill $! 就可以了. 我以前还有模有样的用 ps aux | grep 呢… 2, 重复上一条命令: !! 就是说, 如果敲了一条很长的指令, 结果是忘记了 sudo, 原来我会按 ↑ 呼出上一条命令, 然后按 Home 将光标放到行首, 再嵌入 sudo; 现在只需要 sudo !! 即可了. 3, 显示进度: 一些命令例如 wget 会很好的显示下载进度, 但不是每个命令都如此友好. 例如 mysql, 当你导入一个巨大的 sql 文件时, 除了等待还有什么办法呢? 这时就用上…
-
用 rsyslog 做专属的 log 服务器
对于一个网站服务器而言, 其磁盘操作应该是越少越好的. 尤其是一个高负载的服务器, 如果每分钟要处理成千上万个页面请求, 就意味着要记录相当数目的 log 条目. 磁盘IO是最慢的, 不是吗? 这种情况下很常见的一个做法就是将 log 写到另一台专属的 log 服务器以减轻负担. 比较”现代”的 Linux 系统里, rsyslog 基本已经是标准配置. 所以用一台 Linux 服务器作为另一台 Linux 服务器的 log 服务器并不需要什么额外的软件. 以运行 apache2 服务的网站服务器为例, 将 apache2 log 输出的配置基本如下: 1, /etc/rsyslog.conf […] #避免 local7 被 syslog 重复记录 *.*;auth,authpriv,local7.none -/var/log/syslog #将 local7 转送到 log 服务器 local7.* @SERVER_IP:514 2, /etc/apache2/apache2.conf […] ErrorLog “|/usr/bin/logger…
-
Xen 4.0 Hypervisor with LVM on Debian 6 Squeeze
这篇用不用中文都是差不多了, 索性用英文了. Xen 是VM(虚拟机)的一种, 现在很多商用 VPS 服务商就是使用基于 Xen, 或者 OpenVZ 技术在一台物理上的服务器上同时运行多个VM的. 1, Install Debian 6 Squeeze This step will be the easiest. Just to remember to use LVM when partitioning and leave enough unused(un-partitioned) disk space for later use. If your system has >= 4GB of memory, choose AMD64 architecture. Reference to LVM: http://www.debian-administration.org/articles/410 2,…
-
Linux CLI环境下简单的网络扫描方法
现在有了无线, 不像从前, 一根线连接一台设备. 也因此有了’蹭网’等新事物. 想查一下自己的局域网里都有些什么东东么? 当然, 有很多现成的有GUI的工具可以用, 不过要想露一手(特别是在女生面前), 还是用CLI吧. 192.168.1.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.54/2.54/2.54 192.168.1.76 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.08/0.08/0.08 192.168.1.100 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 1423/1423/1423 192.168.1.102 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 39.6/39.6/39.6 192.168.1.104 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.55/2.55/2.55 上面的结果来自如下的命令组合: $fping -c1 -g 192.168.1.0/24 2>&1…
-
让傀儡机去洗洗睡吧
DenyHosts在这里. sshd: Authentication Failures: unknown (124.124.59.60): 8496 Time(s) root (124.124.59.60): 1166 Time(s) mail (124.124.59.60): 67 Time(s) mysql (124.124.59.60): 67 Time(s) nobody (124.124.59.60): 62 Time(s) …… “我最讨厌你们这些劫匪了,一点技术含量都没有。” 当你看到某人或某傀儡机一遍一遍又一遍的蒙你的登录账号(俗称暴力破解), 你也会这么想吧. Google了一下, 原来Centos已经包含了简单且有效的解决方案. 如果还没有安装DenyHosts可以一步安装: sudo yum install denyhosts 缺省配置(/etc/denyhosts.conf)基本可用, 改一下接收报告的Email地址, 就启动吧: sudo chkconfig –levels 2345 denyhosts on sudo service denyhosts start 首次启动可能时间长一些, 因为要分析全部的日志文件. 之后, 和那些”别有用心”的肉机傀儡机说再见吧. Added the following…