网站文件及数据库文件的备份

文件备份的重要性不言而喻,定期备份是个好习惯,不管是网站文件还是日常生活的照片、视频等。不然等到数据丢失了,你就能体会数据找不回来的那种绝望了。笔者亲身经历过几次,最严重的一次是个人博客7个多月的数据全部丢失,那真是种欲哭无泪的感觉。 今天和大家来讲下如何在服务器端编写备份网站目录及数据库文件的脚本。首先需要先补充几个知识: tar命令,文件的压缩打包 find命令,查找文件 bzip2,文件压缩…

shell编程实战之执行多个目录下的php程序

去年自己参与的一个项目中,有这样的一个需求:在多个目录下都有php脚本,需要去执行这行目录下的所有php脚本。 拿个这个需求,我的考虑是,将目录作为参数传递给shell脚本而不是写死在程序中。这里需要补充个知识点:shell脚本程序的预定义变量 /path/to/scriptname opt1 opt2 opt3 opt4 $0 $1 $2 $3 $4 $0表示脚本文件名,$1表示第一个参数,依次…

shell编程实战之内存检查超过设定值杀死php-fpm进程

公司之前购买过一个源码,写这个源码的工程师当时没有考虑全面,设计数据库表结构有点问题,当公司的数据达到几十万级别的时候,该网站基本就跑不动了。原因是查询的时候没有使用索引,造成了大量的数据库慢查询,服务器同时存在许多php-fpm进程运行。几乎耗尽了服务器cpu和内存。 当定位到问题后,重新设计了表结构,给对应的几个字段加上了索引。加上索引之后,还是偶尔会出现cpu、内存快耗尽的情况。对于这种情况…

shell编程实战之监控网卡流量

最近客户的网站出现卡慢现象,通过检查,出问题是原因是因为带宽吃紧,所以让客户将服务器带宽从原本的2M增加到4M的带宽,网站速度一下就提升了。那么如何监控网卡流量情况,linux有许多命令可以查看。比如iftop,sar等等。 这里,我想写一个监控网卡流量情况的脚本。统计每一分钟的网卡流量情况,输入到指定文件中。可以使用sar -n DEV 1 59查看一分钟内网卡平均流量。 此脚本的核心是获取1分…

shell编程实战之监控端口

一般企业用的服务器上面都会跑各种服务,比如nginx、php、mysql、redis、MongoDB等等。一般系统的运行可能会需要多个服务的配合,比如我司的系统需要php、mysql、redis、apache、MongoDB服务。这些服务缺一不可。 所以我们要实时监控这些服务,如果发现有服务出现异常,需要立即告警。这里我们不打算通过进程名来判断服务的状态。我们打算通过端口的监听来判断服务的运行状态…

shell编程实战之监控磁盘分区使用率

不知道大家有没有碰到过磁盘分区写满,导致新数据写入不了,造成网站出现了问题。之前自己有几次碰到过这种情况,自己当时紧急解决办法是:删除网站的日志文件,删除了MySQL的binlog日志。 当然我们是不希望发生此类问题的,如果网站总出现不稳定或打不开情况,会给用户一种不靠谱的感觉。所以,对于磁盘分区的使用,我们需要实时监控,当超过预设值时,就发送份邮件或短信给管理员,将错误扼杀至摇篮里。 对于此脚本…

shell编程实战之rm命令太危险,使用自定义命令del替换

不知道大家对在服务器上使用rm命令有什么感觉,反正每次我使用的时候,都会好好确认,即使这样,按下回车的时候,心里还是会有点慌慌的感觉。因为和windows系统不一样,使用win系统默认删除文件,该文件就会被放入到回收站中,想要恢复直接从回收站找到文件并恢复即可。但是在linux中,用rm删除文件,那就是真的删除掉了,是没有回收站这个概念的。 真因为rm命令的危险性,所以想要不自己写一个shell脚…