Tag: linux tools

  • 树莓pi连接网络摄像头进行监控

    需要工具,树莓pi或linux server一台,usb摄像头一个。

    需要的软件是 motion。

    树莓pi(或者说linux)的兼容性不错,插上摄像头之后,使用lsusb查看usb设备

    Bus 001 Device 004: ID eb1a:2571 eMpIA Technology, Inc. M035 Compact Web Cam

    接下来安装软件motion(可以获取摄像头的数据,生成图片或发送数据流到http)

    sudo apt-get udpate
    sudo apt-get upgrade
    sudo apt-get install motion

    修改motion的配置文件 /etc/motion/motion.conf

    daemon off 变为 daemon on,以daemon方式运行

    webcam_localhost on 变为 webcam_localhost off,意为不只是对本地采集,这样才可以使用http查看

    其他参数如分辨率,截图间隔时间等可根据自己的情况调整。

    启动软件前将/etc/default/motion的start_motion_daemon项变为yes

    然后启动motion

    /etc/init.d/motion start

    之后打开http://ip:8081即可。不想使用8081的可以去将/etc/motion/motion.conf中的端口改为需要的端口。

    样张,摄像头较差:

    motion-capture-raspberry-pi
    motion-capture-raspberry-pi

    上面应用的是视频流的功能,motion还有抓图的功能。然后再根据一些云服务,将图片定时传到云端。如上传到s3可以使用s3cmd – command-line Amazon S3 client。

    整个过程不过十分钟,就搭建了一个视频监控。

  • mysql数据库空间用满时,巧用软链接转移

    参考:http://www.webhostingtalk.com/showthread.php?t=1086919

    对于一些做SEO的人来说,/var/lib/mysql 和 /var/www 是两个占用空间的大户,下面以数据库为例,将/var/lib/mysql下的数据库移动到较大的/home下,并使用软链接将/home/mysql 链接到/var/lib/mysql,实现充分利用空间的目的。

    在这些网站都不在使用的时候,停用mysql,apache

    /etc/init.d/mysqld stop
    /etc/init.d/httpd stop

    使用rsync完整的将数据拷贝(-a archive mode归档模式 -v verbos显示详细 )

    rsync -av /var/lib/mysql /home/

    这个过程根据数据量的不同时间不同,数据很大的话建议使用screen

    接下来看一下大小,如果以上命令都完全执行完的话,是不会出现什么问题的

    du -sh /var/lib/mysql
    du -sh /home/mysql

    将旧的/var/lib/mysql移走,随便移到什么地方,实再不需要删掉也行

    mv /var/lib/mysql /var/lib/mysql-bak

    创建软链接

    ln -s /home/mysql /var/lib/mysql

    之后一定要再次确认上面的软链接链接到对的地方,如果不正确mysql一启动就麻烦了。

     

    #######ubuntu用户注意 begin#######

    如果使用ubuntu下apt-get安装的mysql版本,还需如下操作

    vim /etc/apparmor.d/usr.sbin.mysqld

    将如下两行注释

    /var/lib/mysql/ r,
    /var/lib/mysql/** rwk,

    变更为(可能是因为apparmor不支持软链接)

    /home/mysql/ r,
    /home/mysql/** rwk,

    重启apparmor

    /etc/init.d/apparmor restart

    #######ubuntu用户注意 end#######

     

    之后启动mysql,apache

    /etc/init.d/mysqld start
    /etc/init.d/httpd start

    这样以后所有的mysql数据的位置就在/home/mysql里了。

    另一种解决方案:不用软链接而直接将数据库转移到目录/mnt/sx_disk

    rsync -av /var/lib/mysql /mnt/sx_disk/

    之后在/etc/my.cnf中,将[mysqld]中的如下参数改为

    [mysqld]
    datadir=/mnt/sx_disk/mysql
    socket=/mnt/sx_disk/mysql/mysql.sock

    只这样还不行,会出现

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    另外需添加

    [client]
    port=3306
    socket=/mnt/sx_disk/mysql/mysql.sock

    这样数据库就存为了新的位置/mnt/sx_disk目录中。

    如果同是ubuntu下mysql的话,也需要按上面的方式修改/etc/apparmor.d/usr.sbin.mysqld

  • linux工具之iftop/bmon

    ubuntu下安装 apt-get install iftop

    此命令只有root才可以运行

    iftop -i eth0

    界面说明:

    TX发送的速度
    RX收到的速度
    Cumm:总流量
    peak:流量峰值
    rates:2s 10s 40s 的平均流量

     

    -B 以Bytes为单位显示流量(默认是bits),如:# iftop -B
    -n 使host信息默认直接都显示IP,如:# iftop -n
    -N 使端口信息默认直接都显示端口号,如: # iftop -N
    -F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

    bmon

    按g显示动态的流量随时间变化

    按d显示详细的数据