1024社区 | 1024.day
12K subscribers
406 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
vps规格测试脚本:wget -qO- bench.sh | bash

vps查看回程线路脚本:wget -qO- git.io/besttrace | bash

vps的cpu性能测试:wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && chmod +x unixbench.sh && ./unixbench.sh
有趣的Linux命令11:
今晚要讲的是查看服务器状态命令,比如内核,系统,cpu信息,硬盘,分区,内存,swap,端口信息等命令。

查看内核/操作系统
uname -a

查看CPU信息
cat /proc/cpuinfo

查看硬盘各分区使用情况
df -h

查看内存和swap交换区使用情况
free -h

查看所有进程
ps -ef

查看所有监听端口
netstat -lntp

查看所有已经建立的连接
netstat -antp
有趣的Linux命令12:
今晚要讲的是 ps 命令,用于显示当前进程的状态,类似于 windows 的任务管理器。上次俺们讲过 top 命令,用于动态显示进程信息。而这次的 ps 命令列出的是当前那些进程的快照。

ps = process status

下面列出常用的ps的命令:

显示所有进程信息:
ps -A

显示指定用户信息:
ps -u root

显示所有进程信息,连同命令行:
ps -ef

ps 与 grep 组合使用,查找特定进程:
ps -ef | grep nginx

列出目前所有的正在内存中的程序:
ps aux
nginx出现 worker_connections are not enough 错误,主要是程序和Linux打开open files数目问题。主要是增加nginx和ulimit打开文件的最大数可解决。

1:修改 nginx.conf 如下:
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}


2:修改系统open files

1) vi /etc/security/limits.conf 添加:
* soft     nproc          65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535

bro soft nproc 65535
bro hard nproc 65535
bro soft nofile 65535
bro hard nofile 65535


2) echo "session required pam_limits.so" >> /etc/pam.d/common-session

3) echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive

4) echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf

3:修改file-max

echo "fs.file-max = 6553560" >> /etc/sysctl.conf

重启vps后,可以使用命令 ulimit -n 或者 ulimit -a 查看 open files 参数。
有趣的Linux命令13:
今晚平安夜,给大家讲一个有趣的命令,`screenfetch` 命令,用于在终端里展示Linux发行版的logo及系统信息。

首先debian,ubuntu,linux mint,elementary OS用户使用下面的命令安装:

apt install screenfetch

然后直接运行,就可以看见漂亮的发行版logo了:

screenfetch
让Debian上的 ls 命令彩色,且启用 lll 命令,同Ubuntu的ls命令形式,文件夹后显示斜杠。

vi ~/.bashrc

修改或添加下面内容:

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS -F'
alias ll='ls $LS_OPTIONS -lAF'
alias l='ls $LS_OPTIONS -lF'

修改后执行 source ~/.bashrc 或者重开窗口,即可生效。

l 列表详细显示,包括权限、用户等
ll 列表详细显示,包括权限、用户包括隐藏文件
ls 列出文件目录
#vim #vimrc
vim的一个简单配置,一般在可以在 ~/.vimrc 或者 /etc/vim/vimrc 里修改:

" 支持鼠标
set mouse=a

" 显示行号
set number

" 自动缩进,保持和上行一致
set autoindent

" 显示光标所在行号
"set relativenumber

" 光标所在的当前行高亮
set cursorline

" 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set showmatch

" 搜索时,高亮显示匹配结果
set hlsearch

" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set incsearch

" 搜索时忽略大小写
set ignorecase

" 打开英语单词的拼写检查
"set spell spelllang=en_us

" 底部显示键入内容
set showcmd

" 智能匹配
set smartcase

" 编辑区域内使用深色背景和语法高亮
set background=dark

" Vim兼容Vi
set compatible

" 不加载除vimrc外的其它配置,比如defaults.vim
let g:skip_defaults_vim = 1

runtime! debian.vim

" 显示高亮
if has("syntax")
syntax on
endif

" 全局配置文件(如果有的话)
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
chmod命令图解:
有趣的Linux命令14:
2020终于要过去了,今晚就讲讲Linux关机,重启等命令应应景。

关机命令:

可以使用以下三种命令来关机 Linux :
1、立刻关机(需要root)
shutdown -h now

10 分钟后自动关机
shutdown -h 10

2、立刻关机
halt

3、立刻关机
poweroff

重启命令:

重启可以使用以下两种命令:
1、最简单的是使用 reboot 命令(需要root)
reboot 或者 /sbin/reboot

2、也可以使用 shutdown 命令
shutdown -r now

最后祝大家在新的一年身体健康,阖家欢乐!
#sh #vps
vps规格测试脚本: wget -qO- bench.sh | bash

vps查看回程线路脚本: wget -qO- git.io/besttrace | bash

vps的cpu性能测试脚本: wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && chmod +x unixbench.sh && ./unixbench.sh

vps去程测试网址:https://tools.ipip.net/traceroute.php

vps的ping测试网址:https://ping.pe
#php
小内存vps优化php的内存占用

首先查看php内存限制,默认是128M:

命令: php -i|grep memory_limit
会输出: memory_limit => 128M => 128M

找到php对应的配置文件:
php -i | grep "Loaded Configuration File"

会输出:
Loaded Configuration File => /etc/php/7.3/cli/php.ini

修改成限制64M:
echo "memory_limit = 64M" >> /etc/php/7.3/cli/php.ini && php -i|grep memory_limit
Debian升级最新内核方法

首先备份sources.list文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak

修改sources.list文件:
vi /etc/apt/sources.list

添加下面内容:
deb http://deb.debian.org/debian buster-backports main

然后更新一下系统:
apt update

搜索内核:
apt search linux-image | grep buster-backports

会输出类似下面内容:
linux-image-5.9.0-0.bpo.2-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64


选择 linux-image-5.9.0-0.bpo.2-cloud-amd64 安装

apt install linux-image-5.9.0-0.bpo.2-cloud-amd64

重启:
/sbin/reboot
小内存vps,降低内存占用量的方法:

1:首先选择 Debian 系统,然后更换 cloud 内核,cloud内核是给KVM专用的内核,不适用vm虚拟机或桌面机,内核不必求新。

2:开启 swap 交换区,不必很大,调成和内存差不多大就好了。

3:设置 sysctl.conf vm选项:

当内存使用率不足10%(默认值60%)时使用 swap,尽量避免使用 swap,减少唤醒软中断进程
vm.swappiness=10

将选择多少数据缓存inode和dentry信息,默认100可取值50
vm.vfs_cache_pressure=50

4:适当降低 php 内存限制,默认128M。

5:撤销安全补丁,比如 Intel CPU 的一些安全漏洞,提升cpu性能,降低内存占用
vi /etc/default/grub
内核5.2或以上修改下面内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mitigations=off"
内核5.2以下修改成下面内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"
最后:
update-grub

6:去掉一些没必要内核模块加载 (xfs 等)
chmod -x /etc/grub.d/30_os-prober

下面是俺 256m 内存vps,安装了v2、nginx、php、等等。
#nginx #openssl
Nginx配置Basic Auth登录认证

cd /etc/nginx/conf.d

openssl 生成密码为12345:
openssl passwd 12345

会输出一串密钥
fIHcRVEKijgoM

然后把密钥写入 htpasswd 文件,其中admin为用户名:
echo "admin:fIHcRVEKijgoM" > htpasswd

配置 nginx.conf 文件:

location / {
auth_basic "Hello, World!";
auth_basic_user_file /etc/nginx/conf.d/htpasswd;
}
#sh #v2ray
写了一个自动更改v2ray里UUID的脚本,新建一个 vi uuid.sh 文件,然后 bash uuid.sh 运行就可以了。下面是脚本内容:
#/bin/sh

uuid="$(cat /proc/sys/kernel/random/uuid)"

echo 'stop service' && sleep 3

cp /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.bak

echo 'uuid is changing to':$uuid

sed -ri "s/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/$uuid/" /usr/local/etc/v2ray/config.json

systemctl restart v2ray && sleep 3 && systemctl status v2ray | grep -A 2 "service"

echo 'done!'

运行后,输出的内容如下:
root@debian:~# bash uuid.sh
stop service
uuid is changing to:6200fb6e-0111-483e-9929-cedca5a59289
● v2ray.service - V2Ray Service
Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/v2ray.service.d
└─10-donot_touch_single_conf.conf
Active: active (running) since Thu 2021-01-07 20:20:02 CST; 3s ago
--
CGroup: /system.slice/v2ray.service
└─10983 /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json

done!
有趣的Linux命令15:
今晚要讲的是 source、sh、bash、./ 这几个命令,这些命令都可以执行 shell script 文件,下面讲讲它们的区别。

1、source

在当前shell内去读取、执行a.sh,而a.sh不需要有执行权限
source a.sh

source命令可以简写为"."
. a.sh
注意:点后面是有空格的

2、sh 和 bash

sh a.sh
bash a.sh

都是打开一个subshell去读取、执行a.sh,而a.sh不需要有执行权限
通常在subshell里运行的脚本里设置变量,不会影响到父shell的。

3、./

./a.sh
#bash: ./a.sh: 权限不够
chmod +x a.sh
./a.sh
打开一个subshell去读取、执行a.sh,但a.sh需要有执行权限

可以用 chmod +x 添加执行权限

另外,使用./来执行的文件里有alias语句的话,shell并不会把alias别名扩展成对应的命令,要解决的话,得使用shopt命令来开启alias扩展选项

shopt -s expand_aliases
#haha #vps
今晚给大家分析一下线路:

AS58453
移动CMI线路,简单讲也就是广州移动国际出口,代表IP 223.120

AS4809
中国电信CN2 GIA这个不用多讲,目前唯一IP 59.43

AS4134
ChinaNet也叫 163 骨干网,代表IP 202.97

三个线路随便说几句,第一个广移出口,后起之秀,所谓广移拉万物,说的就是它,可以和GIA媲美,甚至有些时候还优于GIA,这种线路可遇而不可求。

第二个GIA,这个就不多讲,毕竟是专线接入,就是贵。

第三个,就是骨干网163接入,这个其实一般人有误解,以为163就是差,错了,如果不饶路的话,它的速度还是可以的。

最后,说说接入这些线路的vps商家,特别是CN2 GIA的商家,无一例外都是有大陆背景的,像搬瓦工,ggc等商家,要不你能接入电信专线?它们和国内商家唯一的区别就是做得大了,然后就是贵。

多唠叨一句,搬瓦工的aff返利是25%左右,这也是为什么那么多人推荐它的原因,其实没什么性价比!
有趣的Linux命令16:
今晚讲的是查找命令,whereis、locate、find 这几个命令,主要用于查找二进制文件,目录,以及全盘查找。

1、whereis
该命令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

whereis bash
会输出下面:
bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz
以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径

如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:
whereis -b bash
whereis -m bash

whereis 不会全盘搜索,可以查看 whereis 搜索的目录:
whereis -l

2、locate
Linux locate命令用于查找合乎范本样式条件的文档或目录。

查找 passwd 文件,输入以下命令:
locate passwd

搜索 etc 目录下所有以 sh 开头的文件:
locate /etc/sh

忽略大小写搜索当前用户目录下所有以 r 开头的文件:
locate -i ~/r

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。

3、find
find 是全盘查找,所以比较吃硬盘,而且速度相较于上面两命令会慢许多。

全盘查找 v2ray 文件,下面命令会列出带 v2ray 字样的所有文件路径:
find / -name v2ay

全盘查找文件名包含有v2ray这个关键字的文件:
find / -name "*v2ray*"

将当前目录及其子目录下所有文件后缀为 .py 的文件列出来:
find . -name "*.py"

将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime -20

查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;

查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;