工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表分类:linux

linux crontab 实现每秒执行

 

  1. #!/bin/bash  
  2.   
  3. step=2 #间隔的秒数,不能大于60  
  4.   
  5. for (( i = 0; i < 60; i=(i+step) )); do  
  6.     echo "OK"  
  7.     sleep $step  
  8. done  
  9.   
  10. exit 0  


#!/bin/bash
step=3
for (( i = 0; i < 60; i=(i+step) )); do
id=`ps ax | grep ".php" | grep -v grep | awk -F" " '{print $1}'`
echo $id
if [ "$id"x = x ];then
        echo "no"
else
        sleep 1
        nid=`ps ax | grep ".php" | grep -v grep | awk -F" " '{print $1}'`
        if [ "$id" == "$nid" ];then
                echo $nid
                kill $id
        fi
        echo $id
fi
sleep $step
done
 
exit 0

linux环境下NPM安装小结(淘宝镜像)

 

1、安装Nodejs

  官网地址为http://nodejs.org

  但国外地址下载太慢了,建议从淘宝下载(https://npm.taobao.org/mirrors/node/)

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz

  解压:

tar -zxvf node-v4.4.7-linux-x64.tar.gz

  设置环境变量:

export PATH=$PATH:/opt/node-v4.4.7-linux-x64/bin

 

-----

wget https://npm.taobao.org/mirrors/node/latest-v6.x/node-v6.9.2.tar.gz

tar zxvf 

./configure;make;make install

--------------------- 

 

2、安装NMP

  下载nmp安装包,一般nodejs包中已经包含了,设置过环境变量就可以直接使用nmp命令了,如果没有安装,先下载:

  官网地址:www.npmjs.com 

  淘宝地址:https://npm.taobao.org/mirrors/npm/

  安装使用如下命令:

node cli.js install npm -gf

 

3、安装CNMP(非必要)

  由于NMP源都在国外,下载相关资源很慢,所以建议用国内的淘宝NPM镜像(http://npm.taobao.org/)

  通过cnmp命令安装的包都会从淘宝NMP下载,速度很快。  

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

  安装完之后,安装模块的命令就变为:

$ cnpm install [name]

  同步模块命令为:

$ cnpm sync connect

tar.xz文件如何解压

 

XZ压缩最新压缩率之王

xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。

之前xz使用一直很少,所以几乎没有什么提起。

我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。

最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩是一次性的,所以可以忽略。

xz压缩文件方法或命令

xz -z 要压缩的文件

如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.

xz解压文件方法或命令

xz -d 要解压的文件

同样使用 -k 参数来保留被解压缩的文件。

创建或解压tar.xz文件的方法

习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。

创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz

解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

DNF的命令使用教学

 DNF新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。

 
DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
 
DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。
 
DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的额 DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Pathon 编写,发行许可为GPL v2.
 
– 安装 DNF 包管理器
 
DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF .
 
1.为了安装 DNF ,您必须先安装并启用 epel-release 依赖。
 
在系统中执行以下命令:
 
# yum install epel-release
 
或者
 
# yum install epel-release -y
 
其实这里并没有强制使用”-y”的理由,相反的,在不使用”-y”的情况下,用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户,您可以在 YUM 中使用”-y”参数来自动安装所有东西。
 
2.使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。、
 
在系统中执行以下命令:# yum install dnf
 
然后, DNF 包管理器就被成功的安装到你的系统中了。接下来,是时候开始我们的教程了!在这个教程中,您将会学到27个用于 DNF 包管理器的命令。使用这些命令,你可以方便有效的管理您系统中的 RPM 软件包。现在,让我们开始学习 DNF 包管理器的27条常用命令吧!

samba

 yum install -y samba

 
chkconfig --level 35 smb on
 
 
 
vi /etc/samba/smb.conf
 
[web]
        comment = web
        path = /data/web
        browseable = yes
        writable = yes
 
chown webd.webd web
 
 
system user,etc:webd
useradd webd
添加smb用户
/usr/local/samba/bin/smbpasswd -a webd
 
列出共享目录
smbclient -L 127.0.0.1 -U webd%123456
 
进入命令行模式
smbclient //127.0.0.1/web -U webd%123456
 
 
 
 
 
 
 
 
---------------------------
1,列出某个IP地址所提供的共享文件夹 
smbclient -L 198.168.0.1 -U username%password 
 
2,像FTP客户端一样使用smbclient 
smbclient //192.168.0.1/tmp -U username%password
执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/> 这时输入?会看到支持的命令
这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。 
 
3,直接一次性使用smbclient命令 
smbclient -c "ls" //192.168.0.1/tmp -U username%password
和 
smbclient //192.168.0.1/tmp -U username%password
smb:/>ls 
功能一样的 
 
例,创建一个共享文件夹 
smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password 
如果用户共享//192.168.0.1/tmp的方式是只读的,会提示 
NT_STATUS_ACCESS_DENIED making remote directory /share1 
 
4,除了使用smbclient,还可以通过mount和smbcount挂载远程共享文件夹 
挂载 mount -t cifs -o username=administrator,password=123456 //192.168.0.1/tmp /mnt/tmp 
取消挂载 umount /mnt/tmp

vpn

 wdcp 安装vpn成功了,很简单。

 
机器环境 centos Linux 2.6.32-358.6.2.el6.x86_64 wdcp wdcp_v2.5.8
安装脚本和步骤
第一步:
wget http://www.huzs.net/soft/pptp_onekey/pptpd6.sh
复制代码
 
 
 
第二步:
sh pptpd6.sh
复制代码
 
 
 
安装完成后会提示vpn用户名和密码。
 
第三步:
在后台---安全管理---防火墙中,查看添加规则。
在目标端口中填写:1723  操作--选择通过。
 
提示:如果防火墙中已经有了这条规则请先删除再重新添加。
 
 
VPN用户管理:
直接编辑文件:,按照相同格式添加用户名和密码即可。
vi /etc/ppp/chap-secrets
 
 
我已经成功了,如果你也成功了就顶下吧。
 
如果第一步脚本地址失效
 
附上脚本代码,执行即可。
yum remove -y pptpd ppp
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp
arch=`uname -m`
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.$arch.rpm
 
yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp
rpm -Uvh pptpd-1.3.4-2.el6.$arch.rpm
 
mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "localip 172.16.22.254" >> /etc/pptpd.conf
echo "remoteip 172.16.22.1-253" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
 
pass=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass=$1
fi
 
echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets
 
iptables -t nat -A POSTROUTING -s 172.16.22.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
iptables -A FORWARD -p tcp --syn -s 172.16.22.0/24 -j TCPMSS --set-mss 1356
iptables -A OUTPUT -p tcp -m tcp --sport 1723 -j ACCEPT
iptables -A OUTPUT -p 47 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT
 
service iptables save
 
chkconfig iptables on
chkconfig pptpd on
 
service iptables start
service pptpd start
 
echo "VPN service is installed, your VPN username is vpn, VPN password is ${pass}"
复制代码

视频编辑ffmpeg

 视频加水印

ffmpeg -i 094301010916b3019b0174515.mp4 -vf "movie=logo1.png [logo]; [in][logo] overlay=0:0 [out]" 13.mp4
 
 
视频合并
ffmpeg -i concat:"2122180309164d675fa82952.mp4|single_jpg.mp4" -c copy oo.mp4
 
图片转视频
ffmpeg -f image2 -stream_loop 100 -i vv5851.jpg -b:v 200k -r 10 -s 640x480 -acodec libfaac -y single_jpg.mp4
 
 
 
wget http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2
tar jxvf ffmpeg-3.1.3.tar.bz2
cd ffmpeg-3.1.3
./configure --prefix=/usr --disable-yasm --enable-libx264 --enable-gpl
make
make install
 
--enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay
 
 
#以下脚本保存成.sh文件运行,不会出现中文乱码问题 网上查到用enable关键字控制,实际是draw
#加水印 水印位置由x,y,w,h来控制
#ffmpeg编译时需--enable-libfreetype才能用此功能
#!/bin/bash
ffmpeg -y -i jiushu.mpg -acodec libfaac -b:a 30k -ar 44100 -r 15 -ac 2 -s 480x272 -vcodec libx264 -refs 2 -x264opts keyint=150:min-keyint=15 -vprofile baseline -level 20 -b:v 200k -vf "drawtext=fontfile=/mnt/hgfs/zm/simhei.ttf: text=‘来源:迅雷‘:x=100:y=x/dar:fontsize=24:fontcolor=yellow@0.5:shadowy=2"  drawtext.mp4     
       
#加水印,显示10秒
#!/bin/bash
ffmpeg -y -i jiushu.mpg -acodec libfaac -b:a 30k -ar 44100 -r 15 -ac 2 -s 480x272 -vcodec libx264 -refs 2 -x264opts keyint=150:min-keyint=15 -vprofile baseline -level 20 -b:v 200k -vf "drawtext=fontfile=/mnt/hgfs/zm/simhei.ttf: text=‘来源:迅雷‘:x=100:y=x/dar:draw=‘if(gt(n,0),lt(n,250))‘:fontsize=24:fontcolor=yellow@0.5:shadowy=2"  drawtext.mp4   
       
#加水印,每3秒显示1秒
#!/bin/bash
ffmpeg -y -i jiushu.mpg -acodec libfaac -b:a 30k -ar 44100 -r 15 -ac 2 -s 480x272 -vcodec libx264 -refs 2 -x264opts keyint=150:min-keyint=15 -vprofile baseline -level 20 -b:v 200k -vf "drawtext=fontfile=/mnt/hgfs/zm/simhei.ttf: text=‘来源:迅雷‘:x=w-100:y=100:draw=lt(mod(t\,3)\,1):fontsize=24:fontcolor=yellow@0.5:shadowy=2"  drawtext.mp4
 
http://suncom.diandian.com/post/2013-09-12/40053016139
 
 
ffmpeg -y -i 007.mp4 -acodec libfaac -b:a 30k -ar 44100 -r 15 -ac 2 -s 480x272 -vcodec libx264 -refs 2 -x264opts keyint=150:min-keyint=15 -vprofile baseline -level 20 -b:v 200k -vf "drawtext=fontfile=/root/ffmpeg/simhei.ttf: text='vv5851':x=w-100:y=100:draw=lt(mod(t\,3)\,1):fontsize=24:fontcolor=yellow@0.5:shadowy=2"  n007.mp4
 
 
 
--enable-libx264
 
 
ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
./configure --enable-shared --disable-asm && make && make install
 
 
 
编译FAAC-1.28时遇到错误:
 
mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’
 
解决方法:
 
从123行开始修改此文件mpeg4ip.h,到129行结束。
修改前:
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
 
修改后:
#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

iptable p2p

 Below is my iptables rules set. This works like a charm. I have created a https transparent intercept proxy and send all traffic through that proxy server.

 
Using this iptables rules, I can control the network.
 
2086, 2087, 2095 ports are open because we use WHM cpanel and cpanel web mail.
8080 for additional web server.
192.168.2.0 is the local network.
IPTables rule:
 
#Generated by iptables-save v1.4.8 on Tue Mar 10 15:03:01 2015
*nat
:PREROUTING ACCEPT [470:38063]
:POSTROUTING ACCEPT [9:651]
:OUTPUT ACCEPT [1456:91962]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.2.1:3127
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3127
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Mar 10 15:03:01 2015
# Generated by iptables-save v1.4.8 on Tue Mar 10 15:03:01 2015
*filter
:INPUT ACCEPT [2106:729397]
:FORWARD ACCEPT [94:13475]
:OUTPUT ACCEPT [3252:998944]
-A INPUT -p tcp -m tcp --dport 3127 -j ACCEPT
-A FORWARD -m string --string "BitTorrent" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "BitTorrent protocol" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "peer_id=" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string ".torrent" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "announce.php?passkey=" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "torrent" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "announce" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "info_hash" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "get_peers" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "announce_peer" --algo bm --to 65535 -j DROP
-A FORWARD -m string --string "find_node" --algo bm --to 65535 -j DROP
-A FORWARD -s 192.168.2.0/24 -p tcp -m tcp --sport 1024:65535 --dport 8080 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -p tcp -m tcp --sport 1024:65535 --dport 2086 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -p tcp -m tcp --sport 1024:65535 --dport 2087 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -p tcp -m tcp --sport 1024:65535 --dport 2095 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.2.0/24 -p udp -m udp --sport 1024:65535 --dport 1024:65535 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Tue Mar 10 15:03:01 2015
 
 
---------------------------------------------------
iptables -t mangle -I OUTPUT -p tcp -m ipp2p --ares --soul --winmx --apple --dc -j DROP 
iptables -t mangle -I OUTPUT -m ipp2p --edk --kazaa --bit --gnu -j DROP
iptables -t mangle -I INPUT -m ipp2p --edk --kazaa --bit --gnu -j DROP
iptables -t mangle -I INPUT -p tcp -m ipp2p --ares --soul --winmx --apple --dc -j DROP
iptables -t mangle -L INPUT -nvx --line-numbers 
 
 
curl -Lk https://mirrors.dwhd.org/kernel-ml-aufs/kernel-ml-auf.repo >/etc/yum.repos.d/kernel-ml-aufs.repo
yum -y remove kernel-headers
 
 
 
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel iptables-devel perl-Text-CSV_XS -y
 
curl -Lk https://sourceforge.net/projects/xtables-addons/files/Xtables-addons/2.11/xtables-addons-2.11.tar.xz|xz -d|tar x -C /usr/src/ && \
cd /usr/src/xtables-addons-2.11/
 
./configure && \
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` && make install
 
 
-----------
 
 
 
wget http://mirrors.dwhd.org/Kernel/v4.x/linux-4.2.tar.xz
tar xf linux-4.2.tar.xz -C /usr/src/
cd /usr/src/linux-4.2/
cp /boot/config-`uname -r` .config
sh -c 'yes "" | make oldconfig'
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` bzImage
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` modules
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` modules_install
make install
sed -ri 's/(default=).*/\10/' /boot/grub/grub.conf
reboot
 
 
安装ipp2p扩展
 
yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum clean all && yum makecache
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel iptables-devel perl-Text-CSV_XS -y
wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/xtables-addons-2.10.tar.xz
tar xf xtables-addons-2.10.tar.xz
cd xtables-addons-2.10/
./configure 
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` && make install && cd geoip/
./xt_geoip_dl
./xt_geoip_build GeoIPv6.csv
./xt_geoip_build GeoIPCountryWhois.csv
mkdir -p /usr/share/xt_geoip/
cp -a BE LE /usr/share/xt_geoip/
来看看ipp2p的用法格式
 
iptables -m ipp2p --help | sed -n -e '/ipp2p/,//p'
ipp2p v0.10 match options:
  --edk    [tcp,udp]  All known eDonkey/eMule/Overnet packets
  --dc     [tcp]      All known Direct Connect packets
  --kazaa  [tcp,udp]  All known KaZaA packets
  --gnu    [tcp,udp]  All known Gnutella packets
  --bit    [tcp,udp]  All known BitTorrent packets
  --apple  [tcp]      All known AppleJuice packets
  --winmx  [tcp]      All known WinMX
  --soul   [tcp]      All known SoulSeek
  --ares   [tcp]      All known Ares
 
EXPERIMENTAL protocols:
  --mute   [tcp]      All known Mute packets
  --waste  [tcp]      All known Waste packets
  --xdcc   [tcp]      All known XDCC packets (only xdcc login)
ipp2p扩展的具体用法演示
 
##下面的是封IPv4出本机的P2P
iptables -t mangle -I OUTPUT -p tcp -m ipp2p --ares --soul --winmx --apple --dc -j DROP 
iptables -t mangle -I OUTPUT -m ipp2p --edk --kazaa --bit --gnu -j DROP
##下面是封进入本机的P2P
iptables -t mangle -I INPUT -m ipp2p --edk --kazaa --bit --gnu -j DROP
iptables -t mangle -I INPUT -p tcp -m ipp2p --ares --soul --winmx --apple --dc -j DROP
iptables -t mangle -L INPUT -nvx --line-numbers
 
 
http://www.52codes.net/article/1088.html
Records:22812345678910»