crontab

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
名称 : crontab
使用权限 : 所有使用者
使用方式 :
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。
参数 :
crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s “hi” alex@domain.name < /tmp/maildata 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 20 0-23/2 * * * echo "haha" 注意 : 当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之 后加上 > /dev/null 2>&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
范例
$crontab -l 列出用户目前的crontab.

iOS 部署参考

itms-services链接

[code]
<a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>
[/code]

manifest.plist应用清单文件
[code]
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!– array of downloads. –>
<key>items</key>
<array>
<dict>
<!– an array of assets to download –>
<key>assets</key>
<array>
<!– software-package: the ipa to install. –>
<dict>
<!– required. the asset kind. –>
<key>kind</key>
<string>software-package</string>
<!– optional. md5 every n bytes. will restart a chunk if md5 fails. –>
<key>md5-size</key>
<integer>10485760</integer>
<!– optional. array of md5 hashes for each "md5-size" sized chunk. –>
<key>md5s</key>
<array>
<string>41fa64bb7a7cae5a46bfb45821ac8bba</string>
<string>51fa64bb7a7cae5a46bfb45821ac8bba</string>
</array>
<!– required. the URL of the file to download. –>
<key>url</key>
<string>https://www.example.com/apps/foo.ipa</string>
</dict>
<!– display-image: the icon to display during download.–>
<dict>
<key>kind</key>
<string>display-image</string>
<!– optional. indicates if icon needs shine effect applied. –>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://www.example.com/image.57×57.png</string>
</dict>
<!– full-size-image: the large 512×512 icon used by iTunes. –>
<dict>
<key>kind</key>
<string>full-size-image</string>
<!– optional. one md5 hash for the entire file. –>
<key>md5</key>
<string>61fa64bb7a7cae5a46bfb45821ac8bba</string>
<key>needs-shine</key>
<true/>
<key>url</key><string>https://www.example.com/image.512×512.jpg</string>
</dict>
</array>
<key>metadata</key>
<dict>
<!– required –>
<key>bundle-identifier</key>
<string>com.example.fooapp</string>
<!– optional (software only) –>
<key>bundle-version</key>
<string>1.0</string>
<!– required. the download kind. –>
<key>kind</key>
<string>software</string>
<!– optional. displayed during download; typically company name –>
<key>subtitle</key>
<string>Apple</string>
<!– required. the title to display during the download. –>
<key>title</key>
<string>Example Corporate App</string>
</dict>
</dict>
</array>
</dict>
</plist>
[/code]

参考
http://help.apple.com/deployment/ios/#/apda0e3426d7

用 Let’s Encrypt 建立https网站

Let’s Encrypt 首页 https://letsencrypt.org/
Let’s Encrypt 提供的工具可以自动签发证书

工具使用certbot https://certbot.eff.org/#ubuntuxenial-nginx
选择Ubuntu + nginx

[code lang=”bash”]
sudo apt-get install letsencrypt
sudo letsencrypt certonly –webroot -w /var/www/example -d example.com -d www.example.com
[/code]

然后根据提示输入email,等待签发,完成后,证书文件在/etc/letsencrypt/live/example.com下面

接下来就可以配置nginx了

启用ssl,添加ssl配置

[code lang=”text”]
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
# 为了让所有浏览器识别证书的chain链,ssl_certificate项应该使用fullchain.pem,let’s Encrypt生成好了的,内容是
# $ cat cert.pem chain.pem > fullchain.pem
# 如果不使用fullchain.pem,像QQ浏览器就不会信任cert.pem证书的,也会导致使用了QQ浏览器X5内核的微信打不开公众号的https内容
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

}
[/code]

强制http跳转到https

[code lang=”text”]
server {
listen 80;
server_name example.com www.example.com;
rewrite ^ https://$http_host$request_uri? permanent;
}
[/code]

重启nginx

EUI

EUI下载
http://www.eui.cc/downloadandsetup

EUI配置

Aymira

[code lang="text"]
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
[/code]

Aymiya

[code lang="text"]
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
[/code]

[code lang="text"]
#showtooltip 审判
/use [@mouseover,harm] [@target,harm] [@targettarget,harm] [@targettargettarget,harm] [@boss1,harm] [@boss2,harm] [@boss3,harm] 审判

#showtooltip
#/stopcasting
/cast [mod:alt,target=player][target=mouseover,help,exists][help,exists][target=player] 圣光术

#showtooltip
#/stopcasting
/cast [mod:alt,target=player][target=mouseover,help,exists][help,exists][target=player] 圣光闪现

#showtooltip
#/stopcasting
/cast [mod:alt,target=player][target=mouseover,help,exists][help,exists][target=player] 殉道者之光

#showtooltip
#/stopcasting
/cast [mod:alt,target=player][target=mouseover,help,exists][help,exists][target=player] 神圣震击

#showtooltip
#/stopcasting
/cast [mod:alt,target=player][target=mouseover,help,exists][help,exists][target=player] 赋予信仰

[/code]

怀旧 猎人

[code lang="text"]
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
[/code]

怀旧 法师 Aymila

[code]
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
[/code]

怀旧 萨满

[code]

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

[/code]

利用instsrv和srvany来手动安装服务

Windows提供了两个小工具instsrv.exe和srvany.exe来把任何应用包装成windows服务。顾名思义instsrv(install service)是用来安装服务的,而srvany(service anything)包装任何服务的外壳。下载instsrv.exe和srvany.exe.

由于nginx的windows应用没有服务,使用起来不太方便,这里趁机利用一下把nginx安装成windows服务,步骤如下:

1、 首先使用instsrv把srvany安装成服务,instsrv的命令格式(instsrv.exe /?):
[code lang=”text”]
INSTSRV <service name> (<exe location> | REMOVE)
[-a <Account Name>] [-p <Account Password>]

Install service example:

INSTSRV MyService C:\MyDir\DiskService.Exe
-OR-
INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo

Remove service example:

INSTSRV MyService REMOVE
[/code]
location是完整路径哦。
因此我的安装命令
[code]
instsrv.exe nginx e:\temp\clean_day\nginx-1.4.7\srvany.exe
[/code]

2、 第一步把服务外壳安装好了,这里就要配置这个外壳来执行的真正应用了。这里需要修改注册表
运行Regedit.exe,打开“注册表编辑器”;
依次展开如下子键:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services],在该子键下找到并右击nginx(对应步骤1建立的服务名),选择“新建”下的“项”,将其命名为Parameters。
单击选定Parameters,在右侧窗口中新建一个名为Application的字符串值,将其数值数据设置为nginx服务对应的应用程序绝对路径,比如:E:\temp\clean_day\nginx-1.4.7\nginx.exe;
接着再新建两个字符串值:AppDirectory和AppParameters,AppDirectory指定程序所在的目录,如:E:\temp\clean_day\nginx-1.4.7;
AppParameters指明程序运行的参数,如果没有可以不用设值;
启动服务
完毕你就可以用net命令启动/停止,或者sc命令配置服务了。
删除服务
可以使用instsrv的remove选项来删除服务,当然也可以用sc命令。

sails req.flash

req.flash是用在controller向view传递消息,比如登录验证的错误,操作错误

例如在controller定义消息error: req.flash(‘error’, ‘error message…’)
在view获取消息:
通过req.session.flash.error可以多次获取,
通过req.flash(‘error’)获取后消息立即消失,req.session.flash.error也消失

sftp lock to user home

1、openssh-server 版本4.8以上才支持chroot功能
2、修改sshd_config文件

[code]
#必须使用internal-sftp
Subsystem sftp internal-sftp
#针对单个用户的设置
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand internal-sftp
# ChrootDirectory %h

#针对组的设置
#Match
Group sftp
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand internal-sftp
# ChrootDirectory %h
[/code]

3、使用组或者单个用户,都要保证其home目录的owner都为root,权限755或者750
例如用户test,home目录为/home/test, /home、/home/test的owner都为root
用户home目录无修改权限,只能新建个子目录,权限777,子目录里才能上传文件
4、重点:Ubuntu可能不需要其他设置就已经可以了,但是centos、redhat等需要SELinux enabled:

[code]
# setsebool -P ssh_chroot_rw_homedirs on
# restorecon -R /home/$USERNAME
[/code]

5、创建/增加用户

[code]
useradd -d /home/$USERNAME -s /usr/lib/sftp-server -M -N -g sftponly $USERNAME
mkdir -p /home/$USERNAME/uploads /home/$USERNAME/.ssh
chown $USERNAME:sftponly /home/$USERNAME/uploads /home/$USERNAME/.ssh
[/code]

参考:https://cassjohnston.wordpress.com/2012/08/16/selinux-and-chrooted-sftp/
Set up of sftp-only access to a server for a subset of users on a Scientific Linux 6 install with SELinux enforcing:

Create sftponly group and added users with sftp-server as their shell:

[code]
addgroup sftponly
useradd -d /home/$USERNAME -s /usr/lib/sftp-server -M -N -g sftponly $USERNAME
mkdir -p /home/$USERNAME/uploads /home/$USERNAME/.ssh
chown $USERNAME:sftponly /home/$USERNAME/uploads /home/$USERNAME/.ssh
chown root /home/$USERNAME
chmod 755 /home/$USERNAME
chmod 700 /home/$USERNAME/.ssh
passwd $USERNAME
echo ‘/usr/lib/sftp-server’ >> /etc/shells
[/code]

They will chroot into their home directory, so this needs to be owned by root and not writable by any other user, including $USERNAME. As the user won’t have write access to their own home directory, you need to manually create a .ssh directory for them and a subdirectory to which they do have write access, for their files.

Changed /etc/ssh/sshd_config to chroot to the home directory of sftp-only users

[code]
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
[/code]

Make sure selinux allows write access to chroot’ed home directories:

[code]
setsebool -P ssh_chroot_rw_homedirs on
[/code]

I also needed to do a restorecon on the home directory to get selinux to allow sftp users to write to their uploads directory:

[code]
restorecon -R /home/$USERNAME
[/code]

Seems to be working okay now.

tmux install without root access

#!/bin/bash

# Script for installing tmux on systems where you don't have root access.
# tmux will be installed in $HOME/local/bin.
# It's assumed that wget and a C/C++ compiler are installed.

# exit on error
set -e

# set version
TMUX_VERSION=2.1

# create our directories
mkdir -p $HOME/local $HOME/tmux_tmp
cd $HOME/tmux_tmp

# download source files for tmux, libevent, and ncurses
#wget -O tmux-${TMUX_VERSION}.tar.gz http://sourceforge.net/projects/tmux/files/tmux/tmux-${TMUX_VERSION}/tmux-${TMUX_VERSION}.tar.gz/download
#wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
#wget ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz

# extract files, configure, and compile

############
# libevent #
############
tar xvzf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
./configure --prefix=$HOME/local --disable-shared
make
make install
cd ..

############
# ncurses #
############
tar xvzf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=$HOME/local
make
make install
cd ..

############
# tmux #
############
tar xvzf tmux-${TMUX_VERSION}.tar.gz
cd tmux-${TMUX_VERSION}
./configure CFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-L$HOME/local/lib -L$HOME/local/include/ncurses -L$HOME/local/include"
CPPFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-static -L$HOME/local/include -L$HOME/local/include/ncurses -L$HOME/local/lib" make
cp tmux $HOME/local/bin
cd ..

# cleanup
rm -rf $HOME/tmux_tmp

echo "$HOME/local/bin/tmux is now available. You can optionally add $HOME/local/bin to your PATH."

HTML5 FormData ajax上传文件

创建对象:

var formData = new FormData();
//一般文本参数
formData.append('name', 'asd');
//File参数
formData.append('file', $('#file1')[0].files[0]);

第一种$.ajax方法提交:

$.ajax({
url: "http://192.168.2.14:3000/api/v1/fileparse",
type: 'POST',
data: formData,
/**
*必须false才会自动加上正确的Content-Type
*/
contentType:false,
*
* 必须false才会避开jQuery对 formdata 的默认处理
* XMLHttpRequest会对 formdata 进行正确的处理
processData:false
}).done(function(result){
console.log(result);
}).fail(function(err){
console.log(err);
});

第二种$.post方法提交:

//必须进行以下设置,否则提交上去的数据格式不对
$.ajaxSetup({
contentType:false, //必须false才会自动加上正确的Content-Type
processData:false //必须false才会避开jQuery对 formdata 的默认处理
});
$.post("http://192.168.2.14:3000/api/v1/fileparse", formData, function(result){
console.dir(result);
},'json');

 

Windows Server 端口转发

配置方法
假定需要通过192.168.1.8的14941端口连接192.168.1.118的1494端口,则需要在192.168.1.8主机的命令行输入如下语句:

netsh  interface ipv6 install
netsh interface portproxy add v4tov4  listenaddress=192.168.1.8 listenport=14941 connectaddress=192.168.1.118  connectport=1494

—如果已经安装IPV6,第一条可以不需要
—如果操作系统开启了主机防火墙,需要放行TCP 14941的入站连接
—2008防火墙较以前版本有较大改动,可以参考如下链接:

http://pcedu.pconline.com.cn/soft/virus/safe/0710/1130476.html

如果想取消上面配置的端口转发,可以用如下语句:

netsh interface  portproxy delete v4tov4 listenaddress=192.168.1.8  listenport=33891

如果想查看已经配置了哪些端口转发,可以用如下语句:

netsh interface  portproxy show  v4tov4