当前位置:首页 > CN2资讯 > 正文内容

魔兽世界lua脚本源码

2天前CN2资讯

我博客维护脚本的功能主要:启动、停止博客(MySQL、PHP-FPM、Nginx),数据库数据和访问日志打包备份、Wordpress的文件打包备份、把恶意扫描的IP加入防火墙黑名单、过滤出人类访问的记录。

我的VPS的系统是Ubuntu 12.04。

 

启动、停止博客脚本

startBlog.sh,这个脚本还加到开机启动脚本里,万一VPS重启了也会自动启动博客。


log=/home/coderbee/blog/startBlogLog.log date >> $log /usr/share/mysql/bin/mysql.server start && { /usr/share/php5/sbin/php-fpm && { /usr/share/nginx/sbin/nginx && echo "start blog ok" >> $log || echo "start nginx failed " >> $log ; }; } || { echo "start mysql failed ." >> $log ; } shutDownBlog.sh,这个脚本主要是在刚开始搭建博客时用,现在基本不用。 /usr/share/mysql/bin/mysql.server stop 2>&1 >/dev/null kill -quit `cat /usr/share/php5/var/run/php-fpm.pid` 2>&1 >/dev/null /usr/share/nginx/sbin/nginx -s stop 2>&1 >/dev/null

数据库数据和访问日志打包备份

cronday.sh,这个脚本每天凌晨调度执行。


export JAVA_HOME='/usr/share/jdk1.7.0_21' export PATH=$PATH:$JAVA_HOME/bin blog=/home/coderbee/blog/ bakDir=${blog}dataBak # 用mysqldump命令把博客的数据库导出来,然后用vpsBack.jar上传的Dropbox,vpsBack.jar是用Dropbox的API写的一个小工具,只有简单的上传功能。 /usr/share/mysql/bin/mysqldump -u wpblog -p'password' blog > ${bakDir}/blog-bak.sql.tmp 2>/dev/null && mv ${bakDir}/blog-bak.sql.tmp ${bakDir}/blog-bak.sql && java -jar ${blog}vpsBack.jar upload vpsBak4coderbee/db/`date -d"yesterday" +"%Y%m%d"`/ ${bakDir}/blog-bak.sql && echo "backup sql to dropbox ok ." # 一个月的访问日志放在以月份命名的文件夹下,同一年的月份的文件夹放在以年命名的文件夹下。 monDir=${bakDir}/weblog/$(date -d"yesterday" +"%Y")/$(date -d"yesterday" +"%m") dayPath=$(date -d"yesterday" +"%d").log [ -d "${monDir}" ] || mkdir -p ${monDir} logDir=/usr/share/nginx/logs # nginx日志拷贝、清理、切换 cd $logDir && cp access.log ${dayPath} && :> access.log && # 通知nginx重新打开日志文件 kill -USR1 `cat /usr/share/nginx/logs/nginx.pid` && # 打包访问日志 tar -czf "${dayPath}.tar.gz" "${dayPath}" && # 备份访问日志 rm -f ${dayPath} && mv -f "${dayPath}.tar.gz" ${monDir} && chown -R coderbee:appgroup ${bakDir} && echo "backup web log down"

WordPress的文件打包备份

cronweek.sh,这个脚本会打包Wordpress的文件,并上传到Dropbox。因为写博客上传的多媒体和Wordpress插件一般会放在这个目录下,所以每周备份一次。


cd /var/www/ export JAVA_HOME="/usr/share/jdk1.7.0_21" export PATH=$PATH:$JAVA_HOME/bin fname="web-`date +"%Y%m%d" -d"yesterday"`.gz" tar czf $fname wordpress/ && java -jar /home/coderbee/blog/vpsBack.jar upload vpsBak4coderbee/web/ $fname && rm $fname && echo "backup web done ."

过滤出人类访问的记录

先说下我的nginx的日志记录格式: '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

 

比如这是一条: 122.194.20.145 - - [03/Aug/2013:18:13:49 +0800] "GET /index.php/algorithm/20130801/343 HTTP/1.1" 200 10575 "http://news.dbanotes.net/newest" "Mozilla/5.0 (iPad; CPU OS 6_0_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A550 Safari/8536.25" "-" 这个只是很简单的日志处理脚本,只处理今天的博客文章和首页的访问日志,根据User-Agent过滤。 log="/usr/share/nginx/logs/access.log" awk -F"\"" '$2 ~ /(GET \/ HTTP.*)|(\/index.php\/[a-zA-Z]*\/[0-9]+\/[0-9]+ .*)|(\/html5\/[a-zA-Z0-9]+.html .*)/ && $6 !~/(http:\/\/|Java|robot|.com|Wget|PHP|Reeder|Spider|(^-$)|ips-agent|@)/ {print $0}' $log 还有按refer统计: . humanVisit.sh | awk -F"\"" '{print $2, $4}' | cut -d" " -f2,4 | sort -k 1 | uniq -c 访问最多的url: . humanVisit.sh | awk -F"\"" '{print $2}' | cut -d" " -f2 | sort | uniq -c

把恶意扫描的IP加入防火墙黑名单

这个脚本是最近添加的,主要是把那些访问日志里4xx状态、访问的URL看起来是恶意的IP加入防火墙过滤掉。由cron没小时调度执行一次。

ipfilter.sh

cd /home/coderbee/blog/ sortIps=sortIpx # 过滤出访问日志里4xx状态、访问的URL里包含 admin|Admin|scripts且以php后缀结尾的IP awk -F'"' '$3~/4.. [0-9]+/ && $2 ~ /GET \/.*(admin|Admin|scripts).+(index|setup)\.php/ {print $0}' /usr/share/nginx/logs/access.log | awk '{print $1}' >> evilIP sort evilIP | uniq > evilIP.tmp && mv evilIP{.tmp,} iptables -F INPUT # 把整个IP/24段加入黑名单 cut -d. -f1-3 ips evilIP | sort | uniq > $sortIps for i in $sortIps do while read line do if [[ ! -z $line ]]; then ip=$line/24 iptables -t filter -I INPUT -s $ip -j DROP fi done < $i done rm $sortIps cron调度 1 0 * * * /home/coderbee/blog/cronday.sh 2>&1 >> /home/coderbee/blog/cronlog 1 4 * * 1 /home/coderbee/blog/cronweek.sh 2>&1 >> /home/coderbee/blog/cronlog 1 * * * * /home/coderbee/blog/ipfilter.sh 2>&1 >> /home/coderbee/blog/ipfilterlog


小结

这里并没有复杂高深的东西,基本都是 AWK处理文本、sort排序、uniq去重、cut筛选字段、tar进行打包压缩、用cron定时调度,还用了shell的命令条件执行、命令组合、重定向等。

 

这也体现这Linux系统强大之一:提供大量简单的基本命令,用shell把这些命令粘合起来就可以实现更复杂、强大的功能。

 

我也会继续探索Linux shell的更多玩法,尽可能让手工操作转为自动化的。

 

要Linux下编辑shell,首先要掌握一个命令行下的文本编辑器,一般就是Vi了,我之前是按照 酷壳的这篇文章 《简明 Vim 练级攻略》 http://coolshell.cn/articles/5426.html,练了两个星期才基本上上手。

 

关于博客搭建过程可见: http://coderbee.net/index.php/notes/20130620/254


 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/18841.html

    分享给朋友:

    “魔兽世界lua脚本源码” 的相关文章

    海创VPS:高效香港虚拟专用服务器服务解析与用户体验分享

    在现代互联网中,拥有一台高效的虚拟专用服务器(VPS)变得越来越重要。作为一名用户,我总是在寻找可以满足我需求的优秀服务。海创VPS(Hytron)作为一家提供香港VPS服务的供应商,其在市场上独树一帜,以其高速度和可靠的网络连接备受青睐。 海创VPS专注于香港地区,接入了众多优质的上游带宽供应商线...

    解决Hostodo打不开的有效方法和详细步骤

    在使用Hostodo的过程中,偶尔会遇到打不开的情况。这种问题可能会让人感到挫败,但其实有几个常见原因可以帮助我们找到解决办法。首先,网络连接问题是最普遍的原因之一。无论是局域网的配置,还是Wi-Fi的信号不稳定,都会导致连接失败。我记得第一次遇到这种情况时,发现原来是我的路由器出了问题,重新启动后...

    LeaseWeb旧金山数据中心:为企业提供高效IT基础设施解决方案

    在谈到全球范围内的IT基础设施解决方案时,LeaseWeb无疑是一个重要的名字。成立于荷兰的LeaseWeb,凭借其卓越的服务和强大的网络能力,已经发展成为一家全球性的科技公司。它不仅提供传统的独立服务器服务,还涵盖了云计算、服务器托管等多样化的解决方案。对我而言,LeaseWeb就像是一座桥梁,连...

    BBR脚本:提升Linux服务器网络性能的最佳选择

    BBR的基本概念 在近年来的网络技术发展中,BBR脚本不可不提。作为Google提出的拥塞控制算法,它带来了显著的性能提升。我常常会把BBR比作一位聪明的交通指挥官,它通过实时监测网络的瓶颈带宽和往返时间,像调节交通流量一样动态调整数据传输速率。这使得使用BBR的Linux服务器能够在面对不同网络条...

    阿里云新用户优惠活动详解:如何高效利用云服务

    作为阿里云的新用户,我感到兴奋,因为阿里云为像我这样的新手提供了许多优惠和服务,让我能轻松地体验云产品。首先,我们来聊聊什么是阿里云新用户。简单来说,阿里云会通过是否购买过云产品来判断我是否是新用户,而并非仅仅看注册时间。这意味着,只要我没有购买过云服务,就能享受到新用户的特权。 新用户的权益和优惠...

    获取CloudCone优惠码,享受超值VPS主机折扣

    CloudCone 优惠码概述 在探索CloudCone之前,我想先聊聊关于优惠码的事情。CloudCone优惠码是指通过一些特定的方式获得的、可以享受价格折扣的代码。这些代码常常可以在购买VPS主机或其他服务时使用,帮助我节省一些开支。比如,有时候我能在优惠活动中找到让人心动的折扣,几乎是对我钱包...