1. 安装boost。 _______________________________________________________________________________________________________ yum install automake gcc-c++ libevent-devel openssl openssl-devel boost boost-devel bzip2-devel python-devel 注: 1)客户端仅安装boost,thrift即可) 2)yum install boost boost-devel 其他像libevent openssl之类通常可能已经安装; ==============thrift wget http://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz [[email protected] download]# tar zxvf thrift-0.9.0.tar.gz && cd thrift-0.9.0 [[email protected] thrift-0.9.0]# ./configure --without-python --without-ruby [[email protected] thrift-0.9.0]# make && make intall [[email protected] thrift-0.9.0]# vim /usr/local/include/thrift/Thrift.h 头部添加: #define HAVE_CONFIG_H [[email protected] thrift-0.9.0]# cd contrib/fb303 [[email protected] thrift-0.9.0]# ./bootstrap.sh [[email protected] thrift-0.9.0]# make && make install [[email protected] download]# cd ../../.. [[email protected] download]# echo ‘/usr/local/lib‘ >> /etc/ld.so.conf [[email protected] download]# ldconfig ==============scribe(服务器端安装) wget https://github.com/facebookarchive/scribe/archive/master.zip -O scribe-master.zip [[email protected] download]# unzip scribe-master.zip && cd scribe-master [[email protected] scribe-master]# ./bootstrap.sh checking whether the Boost::Filesystem library is available... yes configure: error: Could not link against ! [[email protected] scribe-master]# ./bootstrap.sh --with-boost-filesystem=boost_filesystem [[email protected] scribe-master]# make && make install 配置测试: [[email protected] scribe-master]# mkdir -p /home/scribe/{bin,conf,log,var} [[email protected] scribe-master]# cp examples/example1.conf /home/scribe/conf/scribe.conf [[email protected] scribe-master]# vim /home/scribe/conf/scribe.conf [[email protected] scribe-master]# mkdir /home/scribe/log/scribetest 启动 /usr/local/bin/scribe -c /home/scribe.conf >>/home/scribe/var/running.log 2>&1 & 配置文件默认端口号:1463 默认日志文件目录:/home/scribe/log/scribetest 测试生成日志,查看/home/scribe/log/scribetest下的日志是否生成 [[email protected] scribe-master]# echo “test0001” | ./examples/scribe_cat test 若遇到错误: No module named thrift.Thrift 在thrift源码目录lib/py下执行语句,安装python库 [[email protected] scribe-master]# cd /home/download/thrift-0.9.0/lib/py [[email protected] py]# python setup.py install [[email protected] py]# cd - [[email protected] scribe-master]# ./examples/scribe_ctrl status ALIVE [[email protected] scribe-master]# cp -a examples/scribe_* /home/scribe/bin ++--------------------------------------------------------------------------++
2. 编写脚本控制scribe运行。
[[email protected] ~]# cd /home/scribe/
[[email protected] scribe]# ls
bin conf log
[[email protected] scribe]# cat scribe_ctl.sh
#!/bin/bash # # 2014/11/28 d_scribe_base=‘/data/svr/scribe‘ [ -d ${d_scribe_base}/log ] || mkdir ${d_scribe_base}/log [ -d ${d_scribe_base}/var ] || mkdir ${d_scribe_base}/var f_scribed_bin=‘/usr/local/bin/scribed‘ f_conf="${d_scribe_base}/conf/scribe.conf" f_log="${d_scribe_base}/var/running.log" f_pid="${d_scribe_base}/var/scribed.pid" status() { echo "UID PID PPID C STIME TTY TIME CMD" ps -ef |grep -v grep |grep scribed --color echo "" } stop() { pid=$(cat ${f_pid}) if [ -z $pid ]; then echo "[+] check if scribed is running?" else echo "[+] stopping...(PID: $pid)" kill $pid echo "[-] stopped!" fi echo "" } start() { echo "[+] start scribed with config: ${f_conf}" ${f_scribed_bin} -c ${f_conf} >>${f_log} 2>&1 & pid=$(ps -ef |grep scribed |grep -v grep |awk ‘{print $2}‘) if [ ! -z $pid ]; then echo $pid >${f_pid} echo "[-] done!" else echo ‘[-] start scribed failed! ‘ exit 2 fi echo "" } check() { pid=$(ps -ef |grep scribed |grep -v grep |awk ‘{print $2}‘) if [ -z $pid ]; then echo "[-] `date` scribed died, try to start it again." >>${f_log} start status fi } backup() { cd ${d_scribe_base} local f_backup="${d_scribe_base}/var/scribe_ctl_$(date +%F).tar.gz" echo "[+] backup:" tar zcvf ${f_backup} bin/ conf/ chmod o-r ${f_backup} && ls -lh ${f_backup} echo "[-] done!" echo "" } clean() { cd ${d_scribe_base}/log echo "[+] ready to compress this files:" find primary/* -type f -name "*_[0-9]*[0-9]" -mtime +6 -print |sort find primary/* -type f -name "*_[0-9]*[0-9]" -mtime +6 -print |sort |xargs -i gzip {} echo "[+] ready to compress this files:" find primary/* -type f -name "*_[0-9]*[0-9]" -mtime +6 -print |sort find primary/* -type f -name "*_[0-9]*[0-9]" -mtime +6 -print |xargs -i gzip {} echo "[-] done!" } init_crontab() { echo "[+] append coreseek control scripts to /var/spool/cron/$(whoami)" cat <<_REM >>/var/spool/cron/$(whoami) # [scribe] # #*/1 * * * * /data/svr/scribe/bin/scribe_ctl.sh check >/dev/null 2>&1 & #2 0 * * 6 /data/svr/scribe/bin/scribe_ctl.sh clean >/dev/null 2>&1 & _REM echo ‘[-] finished!‘ echo ‘[-] please uncomment related tasks.‘ echo ‘‘ echo "#################" echo ‘[crontab]‘ crontab -l |grep scribe } case $1 in start) start status ;; stop) stop status ;; restart) stop sleep 1 start status ;; status) status ;; check) check ;; backup) backup ;; clean) clean ;; init) init_crontab ;; *) echo "Usage: $0 [start|stop|restart|status|check|backup|clean|init]" ;; esac
时间: 2024-10-12 04:36:17