实现可以写,不可以删除的功能
vi vsftpd.conf
加入
cmds_denied=DELE,RMD
完整ftp命令参考:RawFTP
MySQL5.6加入了一个把buffer_pool dump到磁盘的功能,加快MySQL重启后,数据的预热速度,我们用的Percona Server 5.5也加入了这个功能主要有以下几点:
#!/bin/bash
# change online
mysql -uroot -pxxx <<EOF
set @@global.innodb_buffer_pool_restore_at_startup=600;
select * from information_schema.XTRADB_ADMIN_COMMAND /*!XTRA_LRU_DUMP*/;
EOF
可以在MySQL启动后,select一个表的数据,然后查看buffer pool的page数量,手动把buffer pool dump到磁盘,再重启MySQL,看它是否会restore
一些命令:
# 查看buffer pool的数据大小
show status like 'innodb_buffer_pool_pages_data';
# 手动dump
select * from information_schema.XTRADB_ADMIN_COMMAND /*!XTRA_LRU_DUMP*/;
#手动restore
select * from information_schema.XTRADB_ADMIN_COMMAND /*!XTRA
适合单次分析
如果你想统计下以下数据,命令行工具GoAccess是非常适合的
GoAccess用的是apache的格式定义,内置了4种格式,如果你用的是Nginx默认的日志格式,那么这里可以选”NCSA Combined Log Format”,也可以自定义,默认定义文件在:
~/.goaccessrc
你也可以在其他地方定义,然后通过-p指定日志格式定义文件
假设有一条日志格式是:
0.025 - 192.168.15.41 - - [08/Jan/2014:18:14:35 +0800] "GET /Game.php?agentName=kk&serverID=3 HTTP/1.1" 200 5803 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" -
分别代表处理时间、这个-是人为定义上去的、请求来源IP、这个-字段,是获取远程用户,这里没有,所以是-、这里的-是NCSA标准格式里的、请求时间、请求的URL、http响应码、发送的数据大小、引用来源,这里是空,所以是-、客户端版本等信息、最后一个列是让代理请求客户端IP的,这里是空,所以也是-
那么日志定义文件应该是这样:
color_scheme 0
date_format %d/%b/%Y
log_format %T - %h %^[%d:%^] "%r" %s %b "%R" "%u"
log_file /data/logs/web._php_only.log-20131212
可以把分析结果输出到终端,也可以输出为html,json等格式
命令:
goaccess -f /data/logs/web._php_only.log-20131212 > ur.html
这里有一个需要注意,由于一些接口的特点,每次请求的URL里有个加密串,造成每次请求的URL都是唯一的,goaccess无法统计它,这时可以加-q参数,忽略掉URL问号后面的参数。
命令
goaccess -q -f /data/logs/web._php_only.log-20131212
最近访问gitbucket,基本都要5-6s才能打开,在服务器上看java进程占用CPU500%,通过下面的proxy_cache配置,把图片等静态资源缓存起来,可以实现gitbucket秒开,CPU使用降到30%左右,效果非常明显
mkidr /data/cache/nginx
chown -R www.www /data/cache/nginx
定义cache的存放路径
http{
proxy_cache_path /data/cache/nginx levels=1:2 keys_zone=cache:512m inactive=1d max_size=60g;
# 下面省略其他配置
....
....
}
# 注意下面的配置要放在location / {这个目录配置之前
location ~ \.(gif|png|txt|css|png|jpe?g|ico|js)$ {
proxy_pass http://localhost:8088;
proxy_hide_header Set-Cookie;
proxy_ignore_headers Set-Cookie Expires Cache-Control;
proxy_redirect off;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 100 128k;
proxy_cache cache;
proxy_cache_key $uri;
proxy_cache_use_stale error timeout invalid_header;
proxy_cache_valid 200 301 302 60h;
expires 30d;
}
Time Machine Backup用起来比较方便,每个小时进行备份,文档、代码,再也不用频繁地提交到仓库。
但从使用至今,一直困扰我的是每隔一个月就要来一次新备份,说句实话,200G+的东西,完整备份要6-7个小时,真心伤不起,本来以为是为了安全,每月创建一个新备份,也就忍了,但最近更却每周就要来一次全新备份,实在无法忍受,前几天搜索到一篇文章,今天又要遇到这个问题,警告提示:
Time Machine 已完成备份验证。要提高可靠性,Time Machine 必须为您创建新的备份。
总结下来,所有的指令如下,所有指令都是用普通用户运行,10.10.5测试通过:
chflags -R nouchg /Volumes/{name of your network share}/{name of}.sparsebundle
hdiutil attach -nomount -noverify -noautofsck /Volumes/{name of your network share/{name of}.sparsebundle
上面的指令输入如下,我们需要Apple_HFSX前面的分区号,需要修改diskxs2中的x为对应的数字:
/dev/diskx Apple_partition_scheme
/dev/diskxs1 Apple_partition_map
/dev/diskxs2 Apple_HFSX
开始修复,这里大概需要1个小时
fsck_hfs -drfy /dev/diskxs2
卸载备份
hdiutil detach /dev/diskxs2
最后,告诉TMB,备份已经修复了
vi /Volumes/{name of your network share/{name of}.sparsebundle/com.apple.TimeMachine.MachineID.plist
删除
<key>RecoveryBackupDeclinedDate</key>
<date>{whatever-the-date}</date>
修改
# 将
<key>VerificationState</key>
<integer>2</integer>
# 修改为
<key>VerificationState</key>
<integer>0</integer>
对了,我用的是穷人家的备份服务器:Western Digital Cloud,可能频繁要重新备份,是这个引起