wget下载综合使用方法

下载后自动重命名:

wget http://photoapps.yd.chaoxing.com/MobileApp/GDSL/teshu/pdzx/GDSL8149.pdzx -O 中国经济双重转型之路.pdzx 

-O 文件名.后缀 -O参数是用来重写下载文件名的
说明一下wget的用法。

使用 wget 下载一个目录下的所有文件

wget -r -np -nH -R index.html http://url/including/files/you/want/to/download/

各个参数的含义:
-r : 遍历所有子目录
-np : 不到上一层子目录去
-nH : 不要将文件保存到主机名文件夹
-R index.html : 不下载 index.html 文件

1、下载整个http或者ftp站点

wget http://place.your.url/here

这个命令可以将http://place.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。

wget -r http://place.your.url/here

这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址 同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。

要是您想制作镜像站点,那么可以使用-m参数,例如:

wget -m http://place.your.url/here

这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。

2、断点续传
当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:

wget -c http://the.url.of/incomplete/file

使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

3、批量下载
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:

wget -i download.txt

这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)

4、选择性的下载
可以指定让wget只下载一类文件,或者不下载什么文件。例如:

wget -m –reject=gif http://target.web.site/subdirectory

表示下载http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件类型,–reject=LIST拒绝接受的文件类型。

5、密码和认证
wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:

–http-user=USER    设置HTTP用户
–http-passwd=PASS   设置HTTP密码

对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。

6、利用代理服务器进行下载
如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:

http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080

分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:

–proxy-user=USER       设置代理用户
–proxy-passwd=PASS     设置代理密码

这两个参数,使用参数–proxy=on/off 使用或者关闭代理;wget还有很多有用的功能,需要自己可以去了解一下参数和用法。

wget的使用格式

 

Usage: wget [OPTION]… [URL]…

1、用wget做站点镜像

wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
or
wget -m http://dsec.pku.edu.cn/~usr_name/

2、在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载

wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &

或者从filelist读入要下载的文件列表

wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &

上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件 filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

3、使用代理下载

wget -Y on -p -k https://sourceforge.net/projects/wvware/

代理可以在环境变量或wgetrc文件中设定。

在环境变量中设定代理:

export PROXY=http://211.90.168.99:8080/

在~/.wgetrc中设定代理:

http_proxy = http://proxy.yoyodyne.com:18023/
ftp_proxy = http://proxy.yoyodyne.com:18023/

 

wget各种选项分类列表

1、启动

-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

2、记录和输入文件

-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名

3、下载

–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O –output-document=FILE 把文档写到FILE文件中
-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀
-c, –continue 接着下载没下载完的文件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率

4、目录

-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程目录

5、HTTP选项

–http-user=USER 设定HTTP用户名为 USER.
–http-passwd=PASS 设定http密码为 PASS.
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
–header=STRING 在headers中插入字符串 STRING
–proxy-user=USER 设定代理的用户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL’头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
–cookies=off 不使用 cookies.
–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

6、FTP选项

-nr, –dont-remove-listing 不移走 `.listing’文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

7、递归下载

-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr.
-p, –page-requisites 下载显示HTML文件的所有图片

8、递归下载中的包含和不包含(accept/reject)

-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录

wget -S –spider url 不下载只显示过程。

Linux服务器SSH挂断后继续后台运行命令

linux强制覆盖复制所有文件与不覆盖复制所有文件

linux强制覆盖复制所有文件与不覆盖复制所有文件

强制不提示覆盖复制所有文件:

 cp -Rf /root/OneDrive/* /root/gdrive/ 

 

不覆盖不提示复制所有文件:

 awk 'BEGIN { cmd="cp -ri /root/OneDrive/* /root/gdrive/"; print "n" |cmd; }' 

 

源目录:/root/OneDrive/  #所有文件末尾加*即可
目标目录:/root/gdrive/
 
查看复制进程是否存在:

pgrep -l cp 

 
多文件配合挂断命令执行,效果更佳:

Linux服务器SSH挂断后继续后台运行命令

net-speeder加速工具(可搭配BBR,比锐速好用)

项目:https://github.com/snooda/net-speeder

原理:双倍发包,配合BBRplus使用效果更好

开始安装

apt-get install zip
apt install unzip
wget https://github.com/snooda/net-speeder/archive/master.zip
unzip master.zip 

debian/ubuntu:
#安装libnet-dev:

apt-get install libnet1-dev 

#安装libpcap-dev:

apt-get install libpcap0.8-dev  

#安装gcc:

apt-get install gcc  

#安装libnet-dev:

apt-get libnet-dev  

编译:
Linux Cooked interface使用编译(venetX,OpenVZ):

cd net-speeder-master
chmod +x build.sh
sh build.sh -DCOOKED 

普通网卡使用编译(Xen,KVM,物理机):

cd net-speeder-master
chmod +x build.sh
sh build.sh 

使用方法(需要root权限启动):

#参数:./net_speeder 网卡名 加速规则(bpf规则)
#ovz用法(加速所有ip协议数据):

./net_speeder eth0 "ip"       #eth0为网卡名称

 

如果kvm下报错:err msg:[libnet_write_raw_ipv4(): -1 bytes written (Message too long)
#关闭tso

apt-get install ethtool
ethtool -K eth0 tso off         #eth0为网卡名称
ethtool -K eth0 ufo off

以下两项关闭操作谨慎使用:

ethtool -K eth0 tx off
ethtool -K eth0 rx off tx off tso off gso off 

原理:原本默认是网卡硬件芯片替cpu分担一部分传输处理负荷,但是在vps中由于网卡是虚拟的,几十甚至上百台虚拟机共用一个物理网卡,通常的情况是网卡本身就忙到死,cpu却很空闲,这时修改参数,让cpu来承担这部分工作能改善一下网络性能。

终极用法:

nohup ./net_speeder eth0 "ip" >/dev/null 2>&1 & 
exit

查看net-speeder是否运行:

ps aux|grep net_speeder|grep -v grep  

终止net-speeder运行:

pkill -f net_speeder  

Linux服务器SSH挂断后继续后台运行命令

VPS服务器一些加速脚本

Gcore伯力改邮箱方法

简单逻辑流程:
1、添加另一个邮箱账户,必须给所有权限。

 

2、登陆被添加的邮箱账户,删除另一个账户,就ok!

 

思路就是添加一个账户,删除另外一个账户,简单易懂。

还有控制面板密码修改:

1、找到机器控制面板账号和密码。

以下就是登陆控制面板的信息。

2、更改机器控制面板密码(账号改不掉)。

注意点:
1、必须给被添加的账户全部权限!
2、如果前一个账户如果有未关闭的工单……那就删不掉,必须关闭工单才能删除。

开启hsts实现域名跳HTTPS

1、需要先开启SSL 证书。

2、添加代码:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

 

 Nginx 配置 HSTS

Nginx 服务器中的配置最为简单,只需要编辑 Nginx 配置文件(如:/usr/local/nginx/conf/nginx.conf)将下面行添加到你的 HTTPS 配置的 server 块中即可:

<pre><code bbcode=enable> add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”;</code></pre>

如果你发现直接添加在 server 块中无效的情况,你可以试试直接插入到 location ~ *php 内:

<pre><code bbcode=enable> location ~ [^/]\.php(/|$) {
add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”;
}</code></pre>

配置保存后重启 Nginx 服务。

3、PHP重载配置、重启PHP程序。

测试打开HTTP链接是否跳转到HTTPS

4、同时建议开启301跳转

强制跳转www域名,实现http向https跳转强制使用SSL状态码200

Ubuntu16.04设置IP/网关/DNS

对于Ubuntu和CentOS 6配置都适用。

1、修改IP地址

打开/etc/network/interfaces

sudo vim /etc/network/interfaces

加入以下语句:

auto eth0 #要设置的网卡
iface eth0 inet static #设置静态IP;如果是使用自动IP用dhcp,后面的不用设置,一般少用
addressxxx.xxx.xxx.xxx #IP地址
netmaskxxx.xxx.xxx.xxx #子网掩码
gatewayxxx.xxx.xxx.xxx #网关

2、修改DNS(个别系统DNS修改也在网卡设置里)

打开/etc/resolv.conf

sudo vim /etc/resolv.conf

注意:上面设置的文件重启后会覆盖,如果要持久的保存,需要修改:/etc/resolvconf/resolv.conf.d/base

改为如下内容:

search localdomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加
nameserver 8.8.8.8 #希望修改成的DNS
nameserver 8.8.4.4 #希望修改成的DNS

3、重启服务生效

先运行一次,然后在rc.local里加入这个重启网络配置的命令:

sudo /etc/init.d/networking restart #使网卡配置生效
sudo /etc/init.d/resolvconf restart #使DNS生效

4、查看DNS是否已经生效

cat /etc/resolv.conf

阿里云ECS修改DNS方法(部分使用此方法更靠谱)

https://yq.aliyun.com/articles/490958?spm=5176.10695662.1996646101.searchclickresult.23786d79UbfLpU

vim /etc/resolvconf/resolv.conf.d/head

将DNS内容写入文件:


    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 10.0.1.1
    nameserver 10.0.1.2
    nameserver 10.0.1.3

执行命令:

resolvconf -u

最后查看是否生效:

cat /etc/resolv.conf

 

纯IPV6主机修改谷歌DNS64(NAT64),可访问IPV4地址

nameserver 2001:67c:2b0::4 
nameserver 2001:67c:27e4::64

linux中使用lighttpd安装简单web服务

平台系统:Ubuntu 16.04

安装 Lighttpd

 apt-get update 
 apt-get install lighttpd 
设置 Lighttpd

如果有更高的需求,我们可以通过修改默认设置文件,如/etc/lighttpd/lighttpd.conf,来对 Lighttpd 进行进一步设置。 而在这份教程中我们将使用默认设置,不对设置文件进行修改。如果你曾做过修改并想检查设置文件是否出错,可以执行下面的指令。

 lighttpd -t -f /etc/lighttpd/lighttpd.conf 
开启服务

现在,通过执行 systemctl 指令来重启 Web 服务。

 systemctl start lighttpd 

然后我们将它设置为伴随系统启动自动运行。

 systemctl enable lighttpd 
设置防火墙

如要让我们运行在 Lighttpd 上的网页或网站能在 Internet 或同一个网络内被访问,我们需要在防火墙程序中设置打开 80 端口。由于 CentOS 7 和 Ubuntu15.04 都附带 Systemd 作为默认初始化系统,所以我们默认用的都是 firewalld。如果要打开 80 端口或 http 服务,我们只需执行下面的命令:

 firewall-cmd --permanent --add-service=http 

success

 firewall-cmd --reload 

success

正常情况下可以省略设置防火墙的步骤,网站目录:/var/www/html

最后把域名指向服务器即可访问!

Linux服务器SSH挂断后继续后台运行命令

当我们断开SSH连接时,运行的命令也会终止。如何才能在断开SSH客户端后,让命令在后台自动运行呢?

解决方法:
1.nohup命令
功能:不挂断地运行命令,忽略HUP信号。
语法:nohup command &
中间红色command是需要运行的命令
退出时输入命令:exit
则能保证命令在后台继续运行!

举例:
1. sh test.sh &  
将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失(缺少的日志的输出)
将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。
2. nohup sh test.sh  
将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
3. nohup sh test.sh  & 
将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

注意:退出时切记输入命令:exit

4、nohup 命令 参数 >/dev/null 2>&1 &
我们并不需要linux来记录日志,而且时间长了nohup.out文件会变的非常大,所以我们把linux中的日志全部丢到/dev/null中,相当于放入垃圾桶。>/dev/null是将1放进黑洞, 2>&1是将2放进1,最终都进入黑洞。