crontab

在线工具

  1. 例子:
  2. # 每月的最后1天
  3. 0 0 L * * *
  4. 说明:
  5. Linux
  6. * * * * *
  7. - - - - -
  8. | | | | |
  9. | | | | +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  10. | | | +---------- month (1 - 12) OR jan,feb,mar,apr ...
  11. | | +--------------- day of month (1 - 31)
  12. | +-------------------- hour (0 - 23)
  13. +------------------------- minute (0 - 59)

0 /4 每4小时执行一次
0 4 * 每天04点执行

curl

curl和wget基础功能有诸多重叠,如下载等。
非要说区别的话,curl由于可自定义各种请求参数所以在模拟web请求方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。类比的话curl是浏览器,而wget是迅雷9。

  1. # 下载文件
  2. curl -fsSL https://xxx -o filename #针对https链接使用
  3. curl -O http://man.linuxde.net/text.iso #O大写,不用O只是打印内容不会下载
  4. wget http://www.linuxde.net/text.iso #不用参数,直接下载文件
  5. # 下载并重命名
  6. curl -o rename.iso http://man.linuxde.net/text.iso #o小写
  7. wget -O rename.zip http://www.linuxde.net/text.iso #O大写
  8. # 断点续传
  9. curl -O -C - http://man.linuxde.net/text.iso #O大写,C大写
  10. wget -c http://www.linuxde.net/text.iso #c小写
  11. # 限速下载
  12. curl --limit-rate 50k -O http://man.linuxde.net/text.iso
  13. wget --limit-rate=50k http://www.linuxde.net/text.iso
  14. # 显示响应头部信息
  15. curl -I http://man.linuxde.net/text.iso
  16. wget --server-response http://www.linuxde.net/test.iso
  17. # 同时打印请求头和响应头
  18. curl -v http://man.linuxde.net/text.iso
  19. curl http://man.linuxde.net/text.iso --trace-ascii /dev/stdout
  20. wget -d http://www.linuxde.net/test.iso
  21. # wget利器--打包下载网站
  22. wget --mirror -p --convert-links -P /var/www/html http://man.linuxde.net/

测试nginx服务

  1. curl 127.0.0.1/debug -H 'Host:xxx.com'

find

find ./ -regex .http. 查找当前目录含http的文件

lsof

查看进程打开的文件句柄数

  1. lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

lsof -p pid 查看进程具体占用的文件

rsync

添加ssh端口参数
rsync -e ‘ssh -p 2222’
排除目录

  1. # 注意--exclude只能写相对路径,不能写绝对路径
  2. /usr/bin/rsync -avrP --ignore-errors --progress --exclude={'trunk/www/res/web/','trunk/www/res/m/'} /var/lib/jenkins/workspace/xxx/ host::project
  3. # 以上{}写法似乎只对rsync服务模式生效,下面的测试没有问题
  4. rsync -arvP --exclude='server/storage/logs/' root@host:/data/ /data/
OPTION选项 功能
-a 这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-r、-l、-p、-t、-g、-o、-D 选项。-a 选项后面可以跟一个 —no-OPTION,表示关闭 -r、-l、-p、-t、-g、-o、-D 中的某一个,比如-a —no-l 等同于 -r、-p、-t、-g、-o、-D 选项。
-r 表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。
-v 表示打印一些信息,比如文件列表、文件数量等。
-l 表示保留软连接。
-L 表示像对待常规文件一样处理软连接。如果是 SRC 中有软连接文件,则加上该选项后,将会把软连接指向的目标文件复制到 DEST。
-p 表示保持文件权限。
-o 表示保持文件属主信息。
-g 表示保持文件属组信息。
-D 表示保持设备文件信息。
-t 表示保持文件时间信息。
—delete 表示删除 DEST 中 SRC 没有的文件。
—exclude=PATTERN 表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)。
—progress 表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。
-u 表示把 DEST 中比 SRC 还新的文件排除掉,不会覆盖。
-z 加上该选项,将会在传输过程中压缩。

sed

  1. # 在文件第二行插入
  2. sed -i "2i extension=redis.so" /usr/local/php/etc/php.ini
  3. # 文件尾部插入,必须是单引号
  4. sed -i '$a\extension=redis.so' /usr/local/php/etc/php.ini

tee

tee 会覆盖源文件

  • -a 追加文件

    unzip

    unzip -j xxx.zip 将xxx.zip解压到第一级目录

    vim

    vim -O 同时打开多个文件

  • Ctrl+W+W 循环切换(常用)

  • Ctrl+W+L 向右切换窗口

set ff=unix

配置开机启动项

/etc/rc.d/rc.local

  1. 必须确保该文件有执行权限
  2. 部分命令执行异常时,可以将文件头改为#!/bin/sh -x,重启之后查看/var/log/messages日志