Nginx编译加载使用动态模块(Dynamic Shared Object)(DSO)

Nginx编译加载使用动态模块(Dynamic Shared Object)(DSO)
Nginx版本必须>=1.9.11

查看支持的动态模块
[root@localhost nginx-1.12.2]# ./configure --help | grep dynamic
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
--with-http_image_filter_module=dynamic
enable dynamic ngx_http_image_filter_module
--with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module
--with-http_perl_module=dynamic enable dynamic ngx_http_perl_module
--with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module
--with-stream=dynamic enable dynamic TCP/UDP proxy module
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
--add-dynamic-module=PATH enable dynamic external module
--with-compat dynamic modules compatibility

编译时候的参数
--with-stream \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_ssl_preread_module

使用stream动态模块
user www www;
worker_processes auto;
worker_cpu_affinity auto;

load_module "modules/ngx_stream_module.so";

error_log /home/wwwlogs/error_nginx.log warn;#debug | info | notice | warn | error | crit ]
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events {
use epoll;
worker_connections 51200;
multi_accept on;
}

stream {
server {
listen 20020;
proxy_pass 192.168.122.214:3389;
}
server {
listen 20021;
proxy_pass 192.168.122.200:3389;
}
}
......
......

Linux使用PS1自定义终端命令行参数(修改Shell命令提示符颜色)

Linux使用PS1自定义终端命令行参数(修改Shell命令提示符颜色)

PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。

1.Linux环境变量加载顺序:
/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc]

2、查看默认的PS1
[root@www.zhangfangzhou.cn ~]# echo $PS1
[\u@\h \W]\$

其中PS1常用的参数含义如下:
\d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :#完整的主机名称
\h :#仅取主机的第一个名字
\t :#显示时间为24小时格式,如:HH:MM:SS
\T :#显示时间为12小时格式
\A :#显示时间为24小时格式:HH:MM
\u :#当前用户的账号名称
\v :#BASH的版本信息
\w :#完整的工作目录名称
\W :#利用basename取得工作目录名称,所以只会列出最后一个目录
\# :#下达的第几个命令
\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

3.颜色值设置: PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。
颜色表如下:
F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

4、使用自定义的变量

cat > /etc/profile.d/lnamp.sh << "EOF"
HISTFILESIZE=1000000000
HISTSIZE=100000000
PROMPT_COMMAND="history -a"
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S `whoami` "

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\\$ "

alias l='ls -AFhlt'
alias lh='l | head'
alias vi=vim
EOF

CentOS7 Yum 安装zabbix-agent 3.4

CentOS7 Yum 安装zabbix-agent 3.4

RHEL 7, Oracle Linux 7, CentOS 7 快速安装zabbix-agent 3.4

1、安装zabbix yum源
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum install zabbix-agent

2、直接安装zabbix-agent 3.4的rpm包
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.5-1.el7.x86_64.rpm

3、启动服务
chkconfig zabbix_agent on;service zabbix_agent start(和自己编译的不太一样service zabbix_agentd start)

4、设置接收服务器zabbix_server
Received empty response from Zabbix Agent at [193.70.67.100]. Assuming that agent dropped connection because of access permission 出现这样的错误,是zabbix_agentd没有设置zabbix_server的IP地址,导致zabbix_server收不到信息而失败。
/etc/zabbix/zabbix_agentd.conf

sed -i "s/Server=127.0.0.1/Server=116.255.166.1/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=116.255.166.1/" /etc/zabbix/zabbix_agentd.conf (主动模式)
116.255.166.1为zabbix_server的IP地址,如果你的server有多个IP地址,使用逗号分隔多个IP地址。

Linux 磁盘自检设置

Linux 磁盘自检设置
Linux磁盘自检可以通过自行设置自检时间间隔,自动对硬盘进行检测,第一时间监测硬盘的健康状况,提高硬盘可靠性。
不同的文件系统(xfs,reiserfs,ext4)都有自己的检测和修复工具,本文讲解ext4文件系统的磁盘自检设置方法。
1、检查指定硬盘的文件系统:
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 32G 3.3G 29G 11% /
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 7.8G 17M 7.8G 1% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sdb5 ext4 631G 297G 303G 50% /data
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0

或者blkid /dev/sdb5
# blkid /dev/sdb5
/dev/sdb5: UUID="5e1f3504-8808-4ebb-82be-c318fcbd6d63" TYPE="ext4"

2、查看/etc/fstab确认挂载分区

3、查看相应硬盘的文件系统的自检时间
通过下面的命令可以显示ext文件系统相关参数:
tune2fs -l /dev/sdb5
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:
Last mounted on: /data
Filesystem UUID: 5e1f3504-8808-4ebb-82be-c318fcbd6d63
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 42000384
Block count: 167975624
Reserved block count: 8398781
Free blocks: 92897263
Free inodes: 42000355
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 983
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Mon Aug 7 16:04:19 2017
Last mount time: Thu Nov 30 15:02:15 2017
Last write time: Thu Nov 30 15:02:15 2017
Mount count: 12
Maximum mount count: 39
Last checked: Mon Aug 7 16:04:19 2017
Check interval: 15552000 (6 months)
Next check after: Sat Feb 3 16:04:19 2018
Lifetime writes: 10 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 17716f76-ff63-402e-9ecd-00b0e400f6f0
Journal backup: inode blocks
或者
tune2fs -l /dev/sdb5 | grep 'Check interval'

4.修改Check interval自检间隔时间
Check interval指的是文件系统间隔多长时间进行一次完整性检查,您可以根据您的需要通过下面的命令手工指定:

tune2fs –i 30/dev/sdb5
其默认的单位是天,其他可用的单位有12m(12个月),7w(7周)

在CentOS 7 / RHEL 7 / Fedora 上安装和配置xrdp详细教程

Install xrdp on CentOS 7 / RHEL 7 / Fedora
在CentOS 7 / RHEL 7 / Fedora上安装和配置xrdp详细教程

xrdp is an Open Source Remote desktop Protocol server, which allows you to RDP to your Linux server from Windows machine;
xrdp是一个开源的远程桌面协议服务器,它允许你从Windows使用RDP(Remote Desktop Protocol)远程到你的Linux服务器;

更新系统
yum update -y

安装桌面服务
yum groupinstall "X Window System" "GNOME Desktop" -y
systemctl set-default graphical.target

yum install epel-release -y
yum install xrdp -y

rpm -ql xrdp #查看安装文件
主要配置文件
/etc/xrdp/xrdp.ini
[globals]
bitmap_cache=yes 位图缓存
bitmap_compression=yes 位图压缩
port=3389 监听端口,建议修改成其他端口号

/etc/xrdp/sesman.ini
[Security]
AllowRootLogin=1 允许root登陆
MaxLoginRetry=4 最大重试次数

启动服务
systemctl enable xrdp
systemctl enable xrdp-sesman
systemctl start xrdp-sesman
systemctl start xrdp

设置防火墙
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

或者
iptables -A INPUT -p tcp --dports 3389 -j ACCEPT
service iptables save;service iptables restart

Windows下MySQL-5.7.20绿色免安装版配置与使用

Windows下MySQL-5.7.20绿色免安装版配置与使用
MySQL-5.7.20绿解压缩版(免安装)安装配置教程

下载地址
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-winx64.zip
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-winx64.zip

1、添加环境变量
新建系统变量 MYSQL_HOME ,并配置变量值为 C:\mysql-5.7.20-winx64 ;
编辑用户变量 Path ,将%MYSQL_HOME%\bin 追加到 Path 变量值后面。注意不是覆盖。

2、将my-default.ini名称改为:my.ini
下面是参数配置
[mysql]
default-character-set = utf8mb4
[mysqld]
basedir=C:\mysql-5.7.20-winx64
datadir=C:\mysql-5.7.20-winx64\data
bind-address = 0.0.0.0
server-id = 1
init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4

max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M
ft_min_word_len = 4
log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 30

log_error = C:\mysql-5.7.20-winx64\data\mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = C:\mysql-5.7.20-winx64\data\mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800

3、 安装mysql服务
MySQL-5.7.20提示msvcr120.dll丢失,需要安装vc2015,下载地址https://www.microsoft.com/en-us/download/details.aspx?id=48145

管理员身份在命令提示符下运行
C:\>cd mysql-5.7.20-winx64
C:\mysql-5.7.20-winx64>cd bin
C:\mysql-5.7.20-winx64\bin>mysqld -install MySQL --defaults-file="C:\mysql-5.7.20-winx64\my.ini"

4、初始化MySQL-5.7.20
data文件夹不为空是不能执行这个命令的。密码可以去进入data文件,打开一个.err结尾的文件查看,如果设置了errorlog那么在mysql-error.log查看密码
C:\mysql-5.7.20-winx64\bin>mysqld --initialize 自动生成带随机密码的root用户
C:\mysql-5.7.20-winx64\bin>mysqld --initialize-insecure 自动生成无密码的root用户

5、启动MySQL服务器,在命令提示符中运行命令:net start MySQL。
C:\mysql-5.7.20-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

6、修改密码
命令如下:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'z123456789';

或者
C:\mysql-5.7.20-winx64\bin>mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:

7、卸载MySQL服务
在命令提示符下进入到C:\mysql-5.7.20-winx64\bin>输入"mysqld -remove"或者"sc delete mysql"执行卸载服务
C:\mysql-5.7.20-winx64\bin>mysqld -remove
Failed to remove the service because the service is running
Stop the service and try again

先要停止MYSQL
net stop mysql

CentOS6.x , CentOS7.x , Windows 部分VPS重装后磁盘大小显示不正确

CentOS6.x , CentOS7.x , Windows 部分VPS重装后磁盘大小显示不正确,部分VPS重装后磁盘大小显示不对,需要扩展(extend) 文件系统(filesystem)

CentOS6.x
resize2fs /dev/vda1
The resize2fs program will resize ext2, ext3, or ext4 file systems.
resize2fs命令被用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。

CentOS7.x
如果是 XFS 文件系统,在线拉伸时把 resize2fs 换成 xfs_growfs。
xfs_growfs /dev/vgdemo/lv1

Windows Server
1、在命令提示符下输入 dispart
2、查看磁盘分区 list volume
3、选中需要扩展的磁盘 select volume 2
4、扩展磁盘 extend filesystem

mount: wrong fs type, bad option, bad superblock on /dev/loop0 Curre t

接上一篇文章 自己动手给国内外各种云重装纯净版的CentOS7.x(2)

按照上面的方法给阿里云服务器重装CentOS7.x的时候提示下面的错误
curl: (23) Failed writing body (11904 t= 16384)
loop: module loaded
dracut-initqueue[579]: mount: wrong fs type, bad option, bad superblock on /dev/loop0 Curre t
dracut-initqueue[579]: missing codepage or helper program, or other error
dracut-initqueue[579]: In some cases useful info is found in syslog - try
dracut-initqueue[579]: dmesg I tail or so.
dracut-initqueue[579]:Mumount: /run/initramfs/squashfs: not mounted
dracut-initqueue[579]: /sbin/dmsquash-lice-root: line 273: printf: write error: No space left on device

安装程序还需要系统中至少有 1GB RAM,无论使用图形界面、文本界面以互动方式执行安装,
还是使用 Kickstart 进行自定义安装。安装后,Red Hat Enterprise Linux Atomic Host 还需要 1GB 内存方可运行,
但在裸机硬件中的安装(不是虚拟化主机)需要 2GB RAM。
anaconda-ks.cfg和ks.cfg以及红帽官方手册 https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax#sect-kickstart-commands

将内存升级为2G,则可以安装成功