Linux服务器常用的测速一键脚本

脚本:一

面向国内地区下载上传速度测试

wget -qO- git.io/superbench.sh | bash

可以使用参数分别进行测试:

wget git.io/superbench.sh; chmod +x superbench.sh
./superbench.sh info
./superbench.sh io
./superbench.sh speed
./superbench.sh share

详细测试过程,展开查看

----------------------------------------------------------------------
 CPU Model            : AMD EPYC 7551 32-Core Processor
 CPU Cores            : 2 Cores @ 1996.244 MHz x86_64
 CPU Cache            : 512 KB 
 OS                   : Ubuntu 16.04.6 LTS (64 Bit) Dedicated
 Kernel               : 4.14.129-bbrplus
 Total Space          : 6.0 GB / 45.5 GB 
 Total RAM            : 382 MB / 986 MB (434 MB Buff)
 Total SWAP           : 57 MB / 1999 MB
 Uptime               : 8 days 20 hour 9 min
 Load Average         : 0.00, 0.00, 0.00
 TCP CC               : bbrplus
 ASN & ISP            : AS31898, Oracle Corporation
 Organization         : Oracle Public Cloud
 Location             : Palo Alto, United States / US
 Region               : California
----------------------------------------------------------------------
 I/O Speed( 1.0GB )   : 55.8 MB/s
 I/O Speed( 1.0GB )   : 51.7 MB/s
 I/O Speed( 1.0GB )   : 51.5 MB/s
 Average I/O Speed    : 53.0 MB/s
----------------------------------------------------------------------
 Node Name        Upload Speed      Download Speed      Latency     
 Speedtest.net    49.89 Mbit/s      47.24 Mbit/s        18.712 ms  
 Fast.com         0.00 Mbit/s       47.5 Mbit/s         -           
 Guangzhou CT     43.65 Mbit/s      43.57 Mbit/s        -          
 Wuhan     CT     50.70 Mbit/s      40.07 Mbit/s        -          
 Hangzhou  CT     41.08 Mbit/s      14.41 Mbit/s        -          
 Lanzhou   CT     41.35 Mbit/s      37.82 Mbit/s        -          
 Shanghai  CU     55.85 Mbit/s      48.61 Mbit/s        -          
 Heifei    CU     50.94 Mbit/s      48.21 Mbit/s        -          
 Chongqing CU     47.33 Mbit/s      43.52 Mbit/s        -          
----------------------------------------------------------------------

脚本:二

测速虚高修复版

wget -qO- https://git.io/Jvh0J | bash

详细测试过程,展开查看

继续阅读

宝塔 7.5.2版收费插件免费用

2021.8.20 update:
使用过程中,发现宝塔防火墙突然失效了,测试模拟攻击也没有拦截;
解放方法:将宝塔面板升级到最新,卸载安装的防火墙,记住一定要在文件中把/www/server/btwaf目录删除掉,然后重新用下面的方法走一遍,搞定!

网上收集来的,备用,亲测在最新的宝塔7.5.2中可用。

服务器测试环境Ubuntu 20.04.2,Debian / CentOS应该也可以。

打开目录/www/server/panel/class找到并编辑panelplugin.py文件
使用Ctrl+F搜索并找到

softList['list'] = tmpList

这段代码,在其下方添加如下代码:

softList['pro'] = 1
        for soft in softList['list']:
            soft['endtime'] = 0

修改完成后重启面板,重启完成后就可以直接安装收费的插件了,Nginx防火墙也可以直接安装使用!

如果需要使用网站监控报表还需另外修改一次代码:
安装好网站监控报表插件后打开/www/server/panel/plugin/total目录并编辑total_main.py文件
使用Ctrl+F搜索并找到

4.9 以上版本:

if cache.get('bt_total'): return public.returnMsg(True, 'OK!');

4.9以下版本:

if 'bt_total' in session: return public.returnMsg(True,'OK!');


在这段代码前加上#将其注释掉,并在其下方加入以下代码:

session['bt_total'] = True
        return public.returnMsg(True,'OK!');

然后再次重启面板,即可使用网站监控报表插件了;

继续阅读

Linux服务器修改时区及时间

查看服务器当前时间及时区

date -R

显示如下:

Fri, 28 May 2021 10:42:41 +0000

同步网络时间

    ntpdate命令:

 ntpdate -u 210.72.145.44

    注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
    -u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
    210.72.145.44:中国国家授时中心的官方服务器。

    ntp常用服务器:

中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
美国: time.nist.gov
复旦: ntp.fudan.edu.cn
微软公司授时主机(美国) :time.windows.com
北京邮电大学 : s1a.time.edu.cn
清华大学 : s1b.time.edu.cn
北京大学 : s1c.time.edu.cn
台警大授时中心(台湾):asia.pool.ntp.org

时区修改

tzselect
# 服务器时间,输入命令进行选择,全部输入数字即可
# 4. Asia (亚洲)
# 9. China (中国)
# 1. Beijing Time (北京时间)
# 1. Yes (确认)

复制相应的时区文件,替换系统默认时区 文件链接法

[root@linuxprobe ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统时间写入到硬件(bios)

1.hwclock

hwclock


2.clock -w

 clock -w

参考链接:

继续阅读

用rsync给网站搬家和网站备份

发现用rsync 来给网站搬家和网站备份,简直太高效了,尤其对于数据量级较大的网站,比之前常用到的tar打包,wget下载再解压,高效多了,而且不会因为打包导致网站负载过重,CPU飙升!

首先是两台服务器都必须安装了rsync,可以用以下命令。

# Debian/Ubuntu
$ sudo apt-get install rsync

# Red Hat
$ sudo yum install rsync

# Arch Linux
$ sudo pacman -S rsync

安装rsync如果出现以下错误:

Unmet dependencies. Try ‘apt –fix-broken install’ with no packages (or specify a solution)

执行以下代码:

sudo apt install --fix-broken
sudo apt-get update
sudo apt-get upgrade

将mysql数据库备份放到网站根目录:

mysqldump -uroot -pmypassword 168itw > /home/wwwroot/www.168itw.com/168itw.sql

将本地服务器内容同步到远程服务器:

$ rsync -av source/ username@remote_host:destination

也可以将远程内容同步到本地。

$ rsync -av username@remote_host:source/ destination

还原数据库:

mysql -uroot -pmypassword database_name < dumpfilename.sql
继续阅读

甲骨文Oracle安装宝塔搭建网站

系统是Ubuntu20.04

首先需要去甲骨文后台— 防火墙设置中,开放端口,否则即使下面开了端口,机器还是无法使用!

0.0.0.0/0	All Protocols				All traffic for all ports

开启密码登录,如果需要

修改/etc/ssh/sshd_config

PermitRootLogin yes  #允许root登录
PasswordAuthentication yes #开启密码登录

主要是开端口

sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 8888 -j ACCEPT
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 888 -j ACCEPT
sudo iptables-save
sudo apt-get update
sudo apt-get install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

开启BBR

sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sudo sysctl -p

安装宝塔

curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh

宝塔安装软件

继续阅读

CSS实现鼠标悬停展示二维码

两种方法,我目前在用的是第二种。结合wordpress自动生成二维码的插件,能实现很多好玩的功能。

特点

1、纯CSS实现二维码展示功能,减少加载JS;

2、使用CSS3 transform 属性;

第一步

在需要展示二维码的地方添加如下代码,其中<a>标签内容可以根据需要修改成图片等,href=”javascript:”表示<a>标签作为按钮使用,不做跳转,实现url访问拦截。

<a class="weixin" href="javascript:">
    wechat
</a>

第二步

在样式表style.css中添加如下代码

/*微信二维码*/
a.weixin {
	position: relative;
}

.weixin::after {
	content: url(images/qrcode.gif);
	position: absolute;
	right: -28px;
	top: -135px;
	z-index: 99;
	width: 120px;
	height: 120px;
	border: 5px solid #0095ba;
	border-radius: 4px;
	-webkit-transform-origin: top right;
	transform-origin: top right;
	-webkit-transform: scale(0);
	transform: scale(0);
	opacity: 0;
	-webkit-transition: all .4s ease-in-out;
	transition: all .4s ease-in-out;
}

首先父元素添加相对定位,然后以”:after” 伪元素在<a></a>元素的内容之后插入微信二维码;transform: scale(0)opacity: 0实现二维码隐藏。

第三步

同样在style.css中添加如下代码

.weixin:hover::after {
	transform: scale(1);
	opacity: 1;
}

当鼠标经过时显示二维码。

另一种方法(推荐)

上面的代码中使用了”:after”伪类元素,是在css中引入二维码文件,其实我们也可以利用img标签将二维码图片放在html中,结构如下:

<a class="social weixin" href="javascript:">
    <img class="qrcode" src="http://你的路径/qrcode.gif" alt="微信二维码">
//此处为微信图标。
</a>

自然css样式也要做相应的改变,如下:

a.weixin {
	position: relative;
}

.weixin img.qrcode {
	position: absolute;
	z-index: 99;
	top: -135px;
	right: -28px;
	width: 7.5rem;
	max-width: none;
	height: 7.5rem;
	transform: scale(0);
	transform-origin: top right;
	opacity: 0;
	border: .1rem solid #0085ba;
	border-radius: .25rem;
	-webkit-transition: all .4s ease-in-out;
	-o-transition: all .4s ease-in-out;
	transition: all .4s ease-in-out;

}

.weixin:hover img.qrcode {
	transform: scale(1);
	opacity: 1;
}
继续阅读

mysqldump数据库备份及网站搬家

数据库备份

首先用mysqldump备份数据库到网站根目录:

mysqldump -uroot -pmypassword 168itw > /home/wwwroot/www.168itw.com/168itw.sql

root为mysql数据库用户名,mypassword为密码,168itw为数据库名,168itw.sql为备份成的文件。

备份多个数据库:

mysqldump -uroot -pmypassword --databases wp stuff > wpbak.sql

root为mysql数据库用户名,mypassword为密码,wp、stuff为数据库名,wpbak.sql为备份成的文件。

备份所有数据库:

mysqldump -uroot -pmypassword --all-databases > all-databases.sql

root为mysql数据库用户名,mypassword为密码,all-databases.sql为备份成的文件。

还原MySQL数据库的方法

1、还原单个数据库

继续阅读

WordPress添加https后出现重定向太多无法打开的错误

WordPress添加https后出现的错误,有两种情况,我都遇到了。

  1. 添加https后,前台页面可以打开,但是无法进入wordpress后台
  2. 网站搬家后,导入数据库,前端,后台都无法进入,提示重定向太多清除缓存的错误

网上找了很多方法,最有效的解放方法是修改wp-config.php,找到如下代码:

** 
@package WordPress
*/

在下方添加如下代码:

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

搞定。

mysql大数据库的备份方法

一是mysqldump,二是xtrabackup备份工具。

mysqldump

mysqldump是一款mysql逻辑备份的工具,它将数据库里面的对象(表)导出作为SQL脚本文件。它是mysql备份常用的备份方法,适合于不同版本mysql之间的升级、迁移等,不过在数据库比较大的时候,效率不高。

mysqldump命令的常见用法:

# 备份单个的数据库,如备份db1这个数据库
mysqldump -uroot -p123456 db1 > /backup/db1_`date +%F`.sql

# 备份所有数据库,-A参数
mysqldump -uroot -p123456 -A > /backup/all_db.sql

# 备份远程主机的数据库,-h指定IP地址,-P(大写P)指定端口
mysqldump -uroot -p123456 -h192.168.30.4 -P3306 db1 > /backup/db1.sql

# 只备份表结构,不备份数据,使用-d参数
mysqldump -uroot -p123456 -d db1 > /backup/db1.sql

# 只备份数据,不备份表结构,使用-t参数
mysqldump -uroot -p123456 -t db1 > /backup/db1.sql 

# 备份指定的多个库,-B参数
mysqldump -uroot -p123456 -B db1 db2 db3 > /backup/db123.sql

# 备份指定的表,如备份db1库里面的stu表
mysqldump -uroot -p123456 db1 stu > /backup/db1_stu.sql

# 备份多个表
mysqldump -uroot -p123456 库1 表1 表2 表3... > db_tables.sql

# 恢复数据
mysqldump -uroot -p123456 dbname < xxx.sql
#或者
mysqldump -uroot -p123456 < xxx.sql
继续阅读

WordPress终极优化,效果明显

有一个网站,文章即将突破100万+,前端、后台都极其卡顿,尤其是在搜素文章的时候,CPU陡升。网上找了一些优化教程,最后实验下来,最有效的终极方案是Opcache+Memcached+WP Rocket组合,加上用Relevanssi Search建立搜素索引。

如果是宝塔,直接在后台安装Opcache和Memcached即可,简单。以下以军哥的lnmp为例。

Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

安装
进入lnmp解压后的目录,执行:./memcached.sh
回车确认后就会自动安装memcache php扩展和memcached。

开启Memcached后需要将PHP Memcached 扩展object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/。

可以参看这篇文章:https://blog.wpjam.com/article/wordpress-memcached/

Opcache

opcache是php代码层缓存,memcached是数据层缓存。

此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。

安装
进入lnmp解压后的目录,执行:./opcache.sh
回车确认后就会自动安装opcache。

最后是安装WP Rocket,网上有相关的破解版。

Relevanssi Search

2022.5.15 update:文章量级超过百万了,Relevanssi Search也不能满足了,直接上Elasticsearch解决wordpress搜索难题。

直接在wordpress后台搜素Relevanssi Search插件并且启用设置。

这个组合,对于文章量级比较大的wordpress站点,优化效果非常明显。

关于宝塔面板安装Opcache+Memcached

宝塔会经常容易漏掉Memcached的PHP扩展。有人说要先安装Memcached的PHP扩展,再安装Memcached,否则不起作用,我没有验证过。正确保险的安装顺序是:

  1. 宝塔软件商店中,找到已经安装的PHP7.4 – – – 安装扩展,安装Opcache和Memcached
  2. 软件商店中安装Memcached
  3. 将object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/

另外,如果同台服务器有多个wordpress站点,应该怎么同时使用 Memcached?参考:https://m.wpjam.com/m/memcached-for-sites-in-same-host/

参考:https://www.dazhuanlan.com/2020/01/17/5e213a18be00e/

WordPress其他优化技巧:https://tlanyan.pp.ua/wordpress-performance-optimization/