haojianyun

welcom to my haojianyun.com

以前经常通过一个定时脚本实现文件同步,隔断时间检查一下,但总感觉这个不太智能化,于是一顿考量,选择了强大的 inotifywait,废话少说看代码

  • 安装inotify-tools,我这测试环境是centos7
    • yum install inotify-tools
    • 不明白或报错可以查看 https://github.com/rvoicilas/inotify-tools/wiki
  • 检查系统是否支持 inotify
    • grep INOTIFY_USER /boot/config-$(uname -r) 如果输出是 CONFIG_INOTIFY_USER=y 代表可以
  • 预览我的配置文件,这个配置文件是从上面github的 inotify-tools来的

#!/bin/sh

# get the current path
CURPATH=`pwd`

ip="`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`"

inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' \
-e modify -e create -e delete -e move -e attrib  /mnt/fzdisk/sync/var/www/ | while read date time dir file; do

       rsync -a --delete /mnt/fzdisk/sync/var/www /root/t/var/  && \
       echo " $ip At ${date} ${time} www files was rsync" >> /mnt/fzdisk/log/$ip.log
done

用法很简单:

  1. ip 那个是获取当前服务器内网IP地址
  2. inotifywait 这个是运行文件系统通知服务,后面跟相应的路径,以及需要监听的事件,用多个 -e 表示 ,我上面是修改,创建,删除,移动,已经文件属性修改,都会触发下面的语句
  3. rsync 这个是文件同步命令,类似于cp命令,但比cp好用,我这个里用到了,
    • -a 表示全部更新,包括文件属性,已经子目录的遍历等
    • –delete 表示原有目录删除什么,我们要更新的这个目录也会更着删除

好了,具体参数你可以网上继续搜索一下,很多的

11月 16th, 2017

Posted In: computer knowledge(电脑知识)

Leave a Comment

svn 常用

  1. svn 版本库拉取
    svn co svn://192.168.0.22/mysvn   #后面不更任何目录代码更新到命令当前所在的目录
    svn co svn://192.168.0.22/mysvn  /var/www  #更新到/var/www 目录
或者
    svn checkout svn://192.168.0.22/mysvn (同上 co 是 checkout 的缩写)
  1. svn 本地更新到某个版本
svn up   #更新当前所在的目录
svn up  ./user.php    #更新user.php 文件
svn up  /var/www/aa   #更新 /var/www/aa
  1. svn 增加文件
 svn add .    #增加当前目录到版本库
 svn add a.php    #增加a.php到版本库
  1. svn 提交
svn commit -m  'test'  #提交代码

git 常用

  1. git 版本库拉取
git clone http://192.168.0.22/a.git
  1. git 本地更新到某个版本
git pull .
git pull a.php 
  1. git 增加
git add a.php 
git add  .
  1. git 查看状态
git status
  1. git 提交
git commit -m "first commit"  #git commit后需要提交

git push #默认提交
git push origin master //提交master 分支

git svn 混合用

下面是一个git-svn的一般使用流程:
1、git-svn clone svn_repository
2、修改本地代码,使用git add/commit将修改提交到本地git库
3、定期使用git-svn rebase获取中心svn repository的更新
4、使用git-svn dcommit命令将本地git库的修改同步到中心svn库

http://svnbook.red-bean.com/en/1.7/svn.branchmerge.using.html

svn copy sourceURL branchURL
Then, switch to that branch:

svn switch branchURL
And commit your changes:

svn commit

svn switch –relocate http://svn.example.com/path/to/repository/path/within/repository http://svnnew.example.com/new/repository/path/within/repository

11月 10th, 2017

Posted In: computer knowledge(电脑知识)

Leave a Comment

1、查看已安装python的版本,可能是当前系统存在多个python导致


[root@test ~]# whereis python python: /usr/bin/python2.6 /usr/bin/python /usr/bin/python2.6-config /usr/lib/python2.6 /usr/lib64/python2.6 /usr/include/python2.6 /usr/share/man/man1/python.1.gz [root@test ~]# vi /usr/bin/yum 将 #!/usr/bin/python 修改为 #!/usr/bin/python2.6 或者 如果是源代码安装的,默认路径是/usr/local/bin/python2.6,做个软链接即可 rm -rf /usr/bin/python ln -s /usr/local/bin/python2.6 /usr/bin/python

2、查看iptable实现Nat

iptables -t nat -nvL

3、验证 ipsec

ipsec status

ipsec verify

4、看日志


grep pluto /var/log/auth.log grep xl2tpd /var/log/syslog tail -f /var/log/auth.log

5、配置VPN的时候常用端口要打开,包括安全组里面的出入

PPTP端口:TCP: 1723
———————————
L2TP
———————————
UDP:500    (isakmp)
UDP:4500   (nat-t)
UDP:1701   (l2tp)

5、Async同步文件常用方法

a. 服务端
/bin/rsync -a /var/www/ /mnt/fzdisk/www/  
/bin/rsync -a /usr/local/nginx/conf/vhost/ /mnt/fzdisk/vhost

b.同步端
/bin/rsync -a /mnt/fzdisk/www  /var/www
/bin/rsync -a /mnt/fzdisk/vhost/  /usr/local/nginx/conf/vhost
/sbin/service nginx reload

6、文件,硬盘查看

df -h      #硬盘查看
du -ksh  /var/www  #文件或文件夹查看

11月 10th, 2017

Posted In: computer knowledge(电脑知识)

Leave a Comment

万能好用的下载Wget

  • wget-win-1_5_3_1-binary
  • 从以上地址下载后,直接复制到C盘的window下的system32 就可以使用了
  • 后续补充中。。。

10月 20th, 2017

Posted In: computer knowledge(电脑知识)

Leave a Comment

方法1 设置rc.local

  • ls -al /etc/rc5.d/S99local
    看下S99local究竟指向的是 /etc/rc.local还是 /etc/rc.d/rc.local

  • 如果是/etc/rc.d/rc.local,就自己 ln -sf /etc/rc.d/rc.local /etc/rc.local

  • 如果 ls -l /etc/rc.local 没有看到 lrwxrwxrwx 1 root root 13 Sep 13 16:33 /etc/rc.local -> rc.d/rc.local,就自己 chmod +x /etc/rc.d/rc.local

方法2 改写脚本

  1. 自己新建一个脚本,如centnet-service.sh
    经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动tomcat,oracle等服务

  2. 在脚本中输入启动服务的命令,如(开机启动tomcat):
    #!/bin/bash
    export JDK_HOME=/home/java/jdk1.8.0_91
    export JAVA_HOME=/home/java/jdk1.8.0_91
    /home/tomcat/apache-tomcat-8.0.36/bin/startup.sh

  3. 执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)
    chmod +x /home/centnet/centnet-service.sh

  4. 执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
    在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
    chmod +x /etc/rc.d/rc.local

  5. 打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
    /home/centnet/centnet-service.sh
    这样,centnet-service.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了

链接:http://www.jianshu.com/p/8a5d968afc7f

9月 27th, 2017

Posted In: computer knowledge(电脑知识)

Leave a Comment

下一页 »