Linux下脚本上传文件到dropbox

这里介绍一个可以上传文件到dropbox的脚本。不用安装,直接运行即可把文件上传到dropbox。
脚本地址:https://github.com/andreafabrizi/Dropbox-Uploader
也可以在本站直接下载:dropbox_uploader.sh
脚本使用方法:
语法:./dropbox_uploader.sh [OPTIONS]…
选项:-u [USERNAME] dropbox用户
-p [PASSWORD] dropbox密码
-f [FILE/FOLDER] 待上传的文件
-d [REMOTE_FOLDER] dropbox的目录,默认是 “/”
-v 返回详细进程模式
例子:
./dropbox_uploader.sh -u [email protected] -f /etc/passwd -v
./dropbox_uploader.sh -u [email protected] -f /var/backup/ -v
也可以在dropbox_uploader.sh文件填写好用户和密码,之后运行脚本时就不用再定义用户和密码。

使用AWStats分析Nginx和Apache日志

AWStats简介

Awstats是一个免费非常简洁而且强大有个性的统计工具。它可以统计您站点的如下信息:
   一:访问量,访问次数,页面浏览量,点击数,数据流量等
   二:精确到每月、每日、每小时的数据
   三:访问者国家
   四:访问者IP
   五:Robots/Spiders的统计
   六:纺客持续时间
   七:对不同Files type 的统计信息
   八:Pages-URL的统计
   九:访客操作系统浏览器等信息
   十:其它信息(搜索关键字等等)

下面我们来在CentOS配置AWStats来分析Nginx和Apache日志。

AWStats安装

  1. cd /tmp
  2. wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
  3. tar xzf awstats-7.0.tar.gz
  4. mv awstats-7.0 /usr/local/awstats
  5. cd /usr/local/awstats/tools
  6. mkdir /etc/awstats /var/lib/awstats

AWStats配置

执行awstats_configure.pl脚本进行配置。

  1. perl awstats_configure.pl

配置过程如下:
Config file path (‘none’ to skip web server setup):
none

—–> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

—–> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> devops.webres.wang

—–> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> 回车

接着需要编辑配置文件awstats.devops.webres.wang.conf。

  1. vi /etc/awstats/awstats.devops.webres.wang.conf

只需要定义日志的路径,如:

  1. LogFile="/home/centos/log/access.log"

复制css和icon目录到网站根目录。

  1. cp -R /usr/local/awstats/wwwroot/css /home/www/default
  2. cp -R /usr/local/awstats/wwwroot/icon /home/www/default

手动执行命令更新日志统计数据库及生成静态文件到目录/home/www/default/awstats:

  1. /usr/local/awstats/tools/awstats_buildstaticpages.pl -config=devops.webres.wang -update -lang=cn -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -dir=/home/www/default/awstats

之后你就可以使用http://ip或域名/awstats/awstats.devops.webres.wang.html访问日志统计页面。
添加脚本awstats_buildstaticpages.pl到cron定时生成日志统计页面。

  1. crontab -e
  1. 58 23 * * *  /usr/local/awstats/tools/awstats_buildstaticpages.pl -config=devops.webres.wang -update -lang=cn -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -dir=/home/www/default/awstats

awstats_buildstaticpages.pl脚本使用说明:
语法:awstats_buildstaticpages.pl (awstats_options) [awstatsbuildstaticpages_options]
awstats_options可选参数为:
-config=configvalue:定义配置文件,如devops.webres.wang,就会搜索/etc/awstats/awstats.devops.webres.wang.conf文件。
-update :该选项定义生成静态页面之前先更新数据库。
-lang :统计页面的语言,如-lang=cn,语言为中文。
awstatsbuildstaticpages_options可选参数为:
-awstatsprog=pathtoawstatspl :定义awstats.pl路径。
-dir :定义输出静态页面的目录。
参考:http://awstats.sourceforge.net/docs/awstats_setup.html

pils.c:245: error: initialization from incompatible pointer type

编译cluster glue时出现:

  1. cc1: warnings being treated as errors
  2. pils.c:244: error: initialization from incompatible pointer type
  3. pils.c:245: error: initialization from incompatible pointer type
  4. make[2]: *** [pils.lo] Error 1
  5. make[2]: se sale del directorio
  6. `/usr/src/Heartbeat-STABLE-2-1-STABLE-2.1.4/lib/pils’
  7. make[1]: *** [all-recursive] Error 1
  8. make[1]: se sale del directorio
  9. `/usr/src/Heartbeat-STABLE-2-1-STABLE-2.1.4/lib’
  10. make: *** [all-recursive] Error 1

错误。
解决方法:
打开文件lib/pils/Makefile,删除文件里的-Werror字符。

CentOS编译安装Heartbeat

安装cluster glue

安装heartbeat之前需要安装glue。

  1. yum install autoconf automake libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel
  2. groupadd haclient
  3. useradd -g haclient hacluster
  4. cd /tmp
  5. wget http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2
  6. tar xjf glue-1.0.9.tar.bz2
  7. cd Reusable-Cluster-Components-glue–glue-1.0.9
  8. ./autogen.sh
  9. ./configure –prefix=/usr/local/heartbeat
  10. make && make install

安装Resource Agents

  1. cd /tmp
  2. wget –no-check-certificate https://github.com/ClusterLabs/resource-agents/tarball/v3.9.2
  3. tar xzf v3.9.2
  4. cd ClusterLabs-resource-agents-b735277/
  5. ./autogen.sh
  6. export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
  7. ./configure –prefix=/usr/local/heartbeat
  8. ln -s  /usr/local/heartbeat/lib/* /lib/
  9. make && make install

安装Heartbeat

  1. cd /tmp
  2. wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/7e3a82377fa8.tar.bz2
  3. tar xjf 7e3a82377fa8.tar.bz2
  4. cd Heartbeat-3-0-7e3a82377fa8/
  5. ./bootstrap
  6. export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
  7. ./configure –prefix=/usr/local/heartbeat
  8. make && make install
  9. cp doc/ha.cf /usr/local/heartbeat/etc/ha.d/
  10. cp doc/haresources /usr/local/heartbeat/etc/ha.d/
  11. cp doc/authkeys /usr/local/heartbeat/etc/ha.d/
  12. cp heartbeat/init.d/heartbeat /etc/rc.d/init.d/
  13. chkconfig –add heartbeat
  14. chkconfig heartbeat on
  15. chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
  16. sed -i ‘s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g’ /usr/local/heartbeat/etc/ha.d/shellfuncs
  17. sed -i ‘s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g’ /usr/local/heartbeat/usr/lib/ocf/lib//heartbeat/ocf-shellfuncs
  18. sed -i ‘s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g’ /usr/local/heartbeat/etc/ha.d/resource.d//hto-mapfuncs

除错

1、错误:glue_config.h:99:1: error: “HA_HBCONF_DIR” redefined
解决方法:http://devops.webres.wang/2012/02/glue_config-h991-error-ha_hbconf_dir-redefined/
2、错误configure.ac:9: error: Autoconf version 2.63 or higher is required
解决方法:http://devops.webres.wang/2012/03/configure-ac9-error-autoconf-version-2-63-or-higher-is-required/
3、错误configure.ac:63: require Automake 1.10.1, but have 1.9.6
解决方法:http://devops.webres.wang/2012/03/configure-ac63-require-automake-1-10-1-but-have-1-9-6/

–xinclude: Command not found

编译heartbeat时出现–xinclude: Command not found错误,这时由于缺少libxslt-devel包。安装好后,重新./configure再make即可。

  1. yum install libxslt-devel
  2. make clean
  3. ./configure
  4. make && make install

glue_config.h:99:1: error: “HA_HBCONF_DIR” redefined

编译Heartbeat时出现,glue_config.h:99:1: error: “HA_HBCONF_DIR” redefined。这是由于glue和heartbeat的版本不兼容的问题。
解决方法:
删除/usr/local/heartbeat/include/heartbeat/glue_config.h的最后一行:#define HA_HBCONF_DIR “/usr/local/heartbeat/etc/ha.d/”

./.libs/libplumb.so: undefined reference to

编译Cluster Glue时发生如下错误:

  1. ./.libs/libplumb.so: undefined reference to `uuid_parse’
  2. ./.libs/libplumb.so: undefined reference to `uuid_generate’
  3. ./.libs/libplumb.so: undefined reference to `uuid_copy’
  4. ./.libs/libplumb.so: undefined reference to `uuid_is_null’
  5. ./.libs/libplumb.so: undefined reference to `uuid_unparse’
  6. ./.libs/libplumb.so: undefined reference to `uuid_clear’
  7. ./.libs/libplumb.so: undefined reference to `uuid_compare’
  8. collect2: ld returned 1 exit status

解决方法:

  1. yum install e2fsprogs-devel
  2. make clean
  3. ./configure
  4. make && make install

使用Nagios监控服务器状态,http,磁盘使用率等信息

上次我们介绍了Nagios的安装,这次主要是学习使用Nagios来监控公共服务,如http,ssh,ftp,smtp等服务的状态,以及当前负载,磁盘使用情况等。
Nagios服务器监控的定义都是需要通过配置文件来实现,Nagios的主配置文件是/usr/local/nagios/etc/nagios.cfg。通过上次的安装,nagios已经配置localhost的几个监控服务,配置文件在/usr/local/nagios/etc/objects/localhost.cfg,我们可以参考这个配置文件来配置监控其它主机。
下面我们通过一个监控主机devops.webres.wang的实例来说明如何使用Nagios。
1、我们需要在nagios.cfg配置文件定义devops.webres.wang的配置文件位置。

  1. vi /usr/local/nagios/etc/nagios.cfg

添加:

  1. cfg_file=/usr/local/nagios/etc/objects/devops.webres.wang.cfg

2、创建配置文件devops.webres.wang.cfg,定义host。

  1. vi /usr/local/nagios/etc/objects/devops.webres.wang.cfg

添加如下代码定义一个主机host。

  1. define host{
  2.         use                     linux-server                                   
  3.         host_name               devops.webres.wang
  4.         alias                   devops.webres.wang
  5.         address                 8.8.8.8
  6.         }

3、定义监控服务。
上一步定义了监控的主机,下面开始定义需要监控的服务,我们这里添加监控的服务有三个:ping,http,disk。
ping服务定义:

  1. define service{                         
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             PING
  5.         check_command                   check_ping!100.0,20%!500.0,60%
  6.         }

磁盘监控服务定义:

  1. define service{                         
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             Root Partition
  5.         check_command                   check_local_disk!20%!10%!/
  6.         }

http状态服务定义:

  1. define service{
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             HTTP
  5.         check_command                   check_http
  6.         }

4、检查配置文件并重启nagios。
检查配置文件:

  1. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

没有错误之后重启nagios:

  1. service nagios restart

参考:http://nagios.sourceforge.net/docs/nagioscore/3/en/monitoring-publicservices.html

CentOS安装Nagios网络监视工具

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。下面学习如何在CentOS上安装此软件。

安装完成后的一些情况

  • Nagios以及插件将安装在/usr/local/nagios目录
  • Nagios会配置监控本地机器几个方面(CPU负载,磁盘使用率等)
  • Nagios可以通过http://localhost/nagios/访问
  • 准备工作

    需要以root身份安装Nagios。
    确保在CentOS安装了下面几个软件包:

  • Apache
  • PHP
  • GCC compiler
  • GD development libraries
  • mail命令
  • 你可以通过yum完成这些安装工作:

    1. yum install httpd httpd-devel php openssl-devel make gcc glibc glibc-common gd gd-devel mailx

    开始安装Nagios

    创建帐号

    创建 nagios用户:

    1. /usr/sbin/useradd -m nagios

    创建nagcmd用户组以执行来自web接口的命令,并添加nagios和apache用户到此用户组。

    1. /usr/sbin/groupadd nagcmd
    2. /usr/sbin/usermod -a -G nagcmd nagios
    3. /usr/sbin/usermod -a -G nagcmd apache

    下载Nagios和插件

    创建下载存储目录:

    1. mkdir ~/downloads
    2. cd ~/downloads

    从网站http://www.nagios.org/download/下载Nagios以及插件。

    1. wget http://superb-dca2.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.0/nagios-4.0.0.tar.gz
    2. wget http://softlayer-dal.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz

    编译安装Nagios

    1. cd ~/downloads
    2. tar xzf nagios-4.0.0.tar.gz
    3. cd nagios

    运行Nagios配置脚本,并把nagcmd更改为之前所创建的组。

    1. ./configure –with-command-group=nagcmd

    编译源码:

    1. make all

    安装二进制,init脚本,sample配置文件和设置外部命令目录权限。

    1. make install
    2. make install-init
    3. make install-config
    4. make install-commandmode

    不要现在执行nagios,下面还有一些需要配置。

    定制配置

    样式配置文件已经安装在/usr/local/nagios/etc目录,你仅仅需要更改email地址。

    1. vi /usr/local/nagios/etc/objects/contacts.cfg

    配置web接口

    安装Nagios Web配置文件在Apache的conf.d目录:

    1. make install-webconf

    为登录Nagios Web接口创建nagiosadmin帐号。记住下面你设置的密码,之后登录用到。

    1. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

    重启Apache使新配置生效。

    1. service httpd restart

    编译安装Nagios插件

    1. cd ~/downloads
    2. tar xzf nagios-plugins-1.4.16.tar.gz
    3. cd nagios-plugins-1.4.16
    4. ./configure –with-nagios-user=nagios –with-nagios-group=nagios
    5. make && make install

    启动Nagios

    设置开机启动:

    1. chkconfig –add nagios
    2. chkconfig nagios on

    测试配置文件是否有错误:

    1. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

    如果没有,立即启动Nagios

    1. service nagios start

    登录Nagios

    安装已经完成,你可以使用nagiosadmin用户以及之前设置的密码通过http://localhost/nagios/地址登录Nagios后台。下次学习Nagios的使用。
    参考:http://nagios.sourceforge.net/docs/nagioscore/3/en/quickstart-fedora.html