random tips on coding, ops, ...

Windows 远程桌面连接工具

对 Windows 系统来说,简单的远程桌面连接使用 mstsc.exe 即可,但在管理多个 远端服务器时,tsmmc.msc 就更合适了。其安装过程如下(以 Windows 7 为例):

......

Nexus 5

  1. 注册 Tenso 帐号,完成实名认证,获取转运地址。
  2. 通过日本 VPN,登录 Google Play 下单
  在线购买 1月20日 下午6:31
  1月21日 » 交易金额 JP¥ 39,800 已过账。
  1月21日 » 您所购买的商品已发货。
            YAMATO 跟踪编号:xxxxxxxxxxxx
  
......

daemontools 介绍

*nix 系统下的服务一般以守护进程的方式运行,通过 sysvinit 或 upstart 或 systemd 启动。对那些没有提供内置 daemon 方式的程序,可以通过 start-stop-daemon 进行封装。或采用相对轻量级的程序来实现, 例如本文要介绍的 daemontools 来启动。daemontools 是一套 *nix 上管理服务的工具集,其实现有两个版本,分别为 daemontoolsdaemonntools-encore。 本文仅介绍其中和服务启停有关的几个程序,其他的请参考官方文档。

......

cronie 和 pam_loginuuid 的问题解决

前几天将系统 cron 守护进程由 vixie-cron 替换为 cronie,然后发现所有的 cron 任务都不能正常运行,系统日志里有如下信息:

Dec 26 21:07:01 localhost crond[22769]: (root) PAM ERROR (Cannot make/remove an entry for the specified session)
Dec 26 21:07:01 localhost crond[22769]: (root) FAILED to open PAM security session (Cannot make/remove an entry for the specified session)

比较两者的 pam 配置文件 /etc/pam.d/crond 发现 cronie 的配置多了一行:

session    required   pam_loginuid.so
......

扩展 bash 内置命令

一些常用的操作如 sleep,cat 等一般是通过调用单独的外部命令来执行。 在对一些 shell 脚本做优化时,或者让系统进程树更清晰,或者尽可能的减少进程 fork 的次数时总是想尽可能的通过调用 bash 的内置命令来实现类似的功能,在使用内置 命令实现过于复杂时通过编写扩展编译出动态库来扩展 bash 内置命令也是一个办法。

......

rsyslog 配置简介

rsyslog 是负责收集 syslog 的程序,可以用来取代 syslogd 或 syslog-ng。 在这些 syslog 处理程序中,个人认为 rsyslog 是功能最为强大的。其特性包括: 支持输出日志到各种数据库,如 MySQL,PostgreSQL,MongoDB,ElasticSearch,等等; 通过 RELP + TCP 实现数据的可靠传输(基于此结合丰富的过滤条件可以建立一种 可靠的数据传输通道供其他应用来使用);精细的输出格式控制以及对消息的强大 过滤能力;高精度时间戳;队列操作(内存,磁盘以及混合模式等); 支持数据的加密和压缩传输等。

......

Gluster FS 部署备忘

假设有两台服务器,主机名分别为 dse1,dse2。最好在本地 DNS 中注册并维护这些 主机名。

在两台机器上安装服务程序: apt-get install glusterfs-server

确认服务是否正常运行:

root@dse1:~# service glusterfs-server status
glusterfs-server start/running, process 1153
......

LVM 配置

PV,VG,LV 以及文件系统的关系如下:

    sdd1   sde1      (PV:s on partitions or whole disks)
       \   /
        \ /
       vg_test       (VG)
       /  |  \
      /   |   \
lv_test lv_01 lv_02 (LV:s)
    |      |     |
 ext2  reiserfs  xfs (filesystems)

最好不要将整个物理硬盘创建为 PV,而是先建立一个单独的分区(MSDOS 方式设置分区 格式为 8e, GPT 方式设置标记为 lvm),然后将该分区创建为 PV。

......

Linux Capabilities

*nix 系统上某些程序(如 passwd,ping等)在正常运行时的某些操作需要有 root 权限 才可以正常进行。如 passwd 需要能修改 /etc/shadow 文件,ping 需要能操作 RAW Socket。传统的应对方法是通过 chmod +s file 给这些程序添加 SUID位, 这样程序执行时会以其属主的身份来执行,即该程序运行时的 euid 为文件属主。 如果文件属主为 root,那么程序就能正常执行需要 root 身份才能操作的任务。

但这种方式会有相应的安全隐患,尤其是对那些对安全性考虑不周的程序。其原因是 SUID 对权限的控制是 “all or nothing”,即要么没有权限,要么全都有。 针对这个问题,Linux 提供了一种新的方式即 capabilities 来(部分)解决这个问题。 通过赋给可执行程序一些系统预定义好的细粒度的权限,程序正常执行时就不再需要具有 完全的 root 权限。如 setcap cap_net_raw+ep /bin/ping 给 ping 赋予仅能操作 RAW Socket 的权限。可用的权限请参考 man capabilities

......

Linux 内核 firmware 加载过程

Broadcom 的一些网卡需要加载一些 firmware 才能正常工作,相应的内核信息如下:

bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"

借这个机会对 Linux 内核加载所需的 firmware 的过程做了个了解。

首先参考内核文档 Documentation/firmware_class/README 里的说明:

......