rsync排除过滤目录和文件的方法

使用inotifywait排除监控目录的情况下,必须同时使用rsync排除对应的目录,否则只要有触发同步操作,必然会导致不该同步的目录也会同步。与inotifywait类似,rsync的同步也有--exclude--exclude-from两种写法。

个人还是习惯将要排除同步的目录卸载单独的文件列表里,便于管理。使用--include-from=FILE时,排除文件列表用绝对路径,但FILE里面的内容请用相对路径,如:
/etc/rsyncd.d/rsync_exclude.lst

www/2016/
www/201*/201*/201*/.??*
www??*
src/*.html*
src/js/
src/ext3/
src/2016/20160[1-9]/
src/201*/201*/201*/.??*
membermail/
membermail??*
membermail/201*/201*/201*/.??*

排除同步的内容包括,www下的2016目录,类似2016/201601/20160101/下的临时或隐藏文件,等。

发表在 软件 | 标签为 | 留下评论

inotifywait排除目录和文件方法

案例在使用inotifywait触发同步svn源码的时候,需要过滤每个目录的.svn,这时候就需要写个正则了,不然会频繁触发同步软件,假设/tmp/src/www/2016/以及/tmp/src/www/2015/cache/目录下的所有文件不用同步,所以不需要监控,/tmp/src/下的其他文件和目录都同步。(其实对于打开的临时文件,可以不监听modify时间而改成监听close_write

inotifywait排除监控目录有--exclude <pattern>--fromfile <file>两种格式,并且可以同时使用,但主要前者可以用正则,而后者只能是具体的目录或文件。

# vi /etc/inotify_exclude.lst:
/tmp/src/pdf
@/tmp/src/2014

使用fromfile格式只能用绝对路径,不能使用诸如*正则表达式去匹配,@表示排除。

所以每个目录都有相同的东西要过滤排除的时候,并且格式比较复杂,必须使用正则,那只能在inotifywait中加入选项,如--exclude '(.*/*\.log|.*/*\.swp|.svn)$|^/tmp/src/www/(2016|0808.*/cache.*)',表示排除/tmp/src/www/以下的2016目录,和所有0808*目录下的带cache的文件或目录,以及/tmp/src目录下所有的以.log或.swp结尾的文件。

 

发表在 软件 | 标签为 | 留下评论

使用Composer慢 只要改成中国全量镜像即可

修改 Composer 的全局配置文件(推荐方式)

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

发表在 软件 | 标签为 | 留下评论

nginx查看安装了哪些扩展模块参数

查看nginx安装扩展模块参数命令如下:

/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-ipv6 –with-http_sub_module –with-pcre –with-threads –with-http_realip_module

查看版本就用参数小写v

发表在 服务器 | 标签为 | 留下评论

安装mysql5.6压缩包免编译版

  1. 下载wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
  2. 解压缩 tar zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
  3. 移动到mv mysql-5.6.31-linux-glibc2.5-x86_64 /usr/local/mysql
  4. 添加用户/usr/sbin/groupadd mysql
    /usr/sbin/useradd -g mysql mysql
  5. 修改目录权限 chown mysql.mysql -R /usr/local/mysql
    chmod 755 -R /usr/local/mysql
  6. 创建默认数据库/usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql/data
  7. 修改/usr/local/mysql/my.cnf 下的对应配置信息 如数据库位置和程序位置等
  8. 复制cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  9. 打开mysqld修改对应数据库和程序位置;保存退出然后启动它 /etc/init.d/mysqld start
  10. 设置密码 /usr/local/mysql/bin/mysqladmin -u root password ‘new-password’
    /usr/local/mysql/bin/mysqladmin -u root -h localhost password ‘new-password’
  11. 重启/etc/init.d/mysqld restart
  12. 进入/usr/local/mysql/bin/mysql -u root -p’password’
发表在 数据库 | 标签为 | 留下评论

linux下Shell脚本不切换用户执行命令

linux有时候需要在root下跳转到别的用户去执行命令相当麻烦,其实和可以这样:

只执行一条命令的可以用:su – www -c “pwd” //直接返回路径
执行一个shell文件可以用:su – www -s /bin/bash shell.sh // 执行脚本

发表在 服务器 | 标签为 , | 留下评论

unison的参数说明和命令行使用

这里不介绍unison的安装,主要是参数说明和命令行使用

/root/bin/unison  /root/test root@192.168.1.2//root/test  -times -owner=true -group=true -fastcheck=true –batch –perms=-1 -silent -logfile=/root/.unison/unison.log  -ignore ‘Path cache’ -ignore ‘Name .svn’ -batch -repeat 1

具体可以使用-help参数查看说明:

path xxx参数//只同步-path参数指定的子目录以及文件,而非整个目录,-path可以多次出现。

times 保持文件时间属性

force表示会以本地所指定文件夹为标准,将该目录同步到远端。指定force参数就变成了单项同步,类似rsync。对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的。

ignore = Path表示同步时忽略指定目录

ignorecase [true|false|default] 是否忽略文件名大小写

owner group 保持文件所有者和组属性

fastchek  true表示只比对时间,false表示比对文件内容

logfile 表示日志文件存储位置

silent 在终端中不显示任何信息,除非出现错误

log 记录日志,默认开启

perms 同步文件权限

retry 错误时重试次数

sshargs = -C //使用ssh的压缩传输方式

repeat 间隔检查时间(秒)

fastcheck=true表示同步时仅通过文件的创建时间来比较,false则比较两地文件的内容。

servercmd 指定远程计算机unison命令的位置

follow xxx //是否支持对符号连接指向内容的同步

xferbycopying = true不变目录,扫描 时可以忽略

auto 接受缺省的动作,然后等待用户确认是否执行。

batch 全自动模式,无需干预

Unison 同步配置文件,如果使用的别的账号,切换到对应的账号下使用。

文件位置:/root/.unison/default.prf

运行参数:/root/bin/unison default.prf //直接到对应的账户目录下去找配置文件

#Unison配置文件内容

root = /root/test/

root = ssh://root@192.168.1.2//root/test/

path = test1/

path = test2/

servercmd = /root/bin/unison

#force =

#ignore =

batch = true

#repeat = 1

#retry = 3

owner = true

group = true

perms = -1

fastcheck = true

rsync = false

sshargs = -C

xferbycopying = true

log = true

logfile = /root/.unison/unison.log

发表在 软件 | 标签为 | 留下评论

Linux查看进程的启动和运行相关的文件目录

Centos下想知道某个进程使用的时候是从哪里命令启动和关联到哪些文件的方法其实很简单;

1、首先用ps -ef |grep xxxxx 得到该进程的pid
2、简单的用pwdx命令
[root@netpc.com.cn ~]# pwdx 971
971: /usr/webserver/elasticsearch/bin

3、复杂的用proc命令输入$ ll /proc/123456 命令 就列出相关信息了

以下是/proc目录中进程N的信息

/proc/N pid为N的进程信息

/proc/N/cmdline 进程启动命令

/proc/N/cwd 链接到进程当前工作目录

/proc/N/environ 进程环境变量列表

/proc/N/exe 链接到进程的执行命令文件

/proc/N/fd 包含进程相关的所有的文件描述符

/proc/N/maps 与进程相关的内存映射信息

/proc/N/mem 指代进程持有的内存,不可读

/proc/N/root 链接到进程的根目录

/proc/N/stat 进程的状态

/proc/N/statm 进程使用的内存的状态

/proc/N/status 进程状态信息,比stat/statm更具可读性

发表在 软件 | 标签为 , | 留下评论

nginx: [warn] conflicting server name “127.0.0.1” on 0.0.0.0:80, ignored

修改nginx配置参数后,使用nginx -t或-s都会提示该警告。

意思是重复绑定了server name 对应的端口上,后来修改了下端口重启就可以了。

如果不修改会影响其它绑定域名无法访问。

发表在 服务器 | 标签为 | 留下评论

解决IntelliJ IDEA或phpstorm链接svn出错

windows下安装IntelliJ IDEA或phpstorm后,使用SVN checkout时候会出现如下错误:

Cannot load supported formats: Cannot run program “svn”: CreateProcess error=2

究其原因,是SVN使用了命令行工具,如果本地没有SVN的命令行工具(安装svn的时候没有选择同时安装命令行工具),则导致出错。注意:安装时候必须选中command line client tools这个选项 。 让它支持命令行模式执行svn。

发表在 软件 | 标签为 | 留下评论