Category Archive: HostEase使用教程

8月 10th, 2021

CPanel单点登录允许用户从 WHMCS 过渡到 CPanel 或 WHM 界面,而无需重新进行身份验证。

它的用途是:

在客户区登录CPanel 共享主机账户

在客户区登录 WHM 以获取经销商托管帐户

在管理区域登录共享主机帐户的CPanel

在管理区域登录 WHM 以获取经销商托管帐户

在管理区域登录WHMCS安装中配置的所有CPanel服务器的WHM。推荐阅读:《什么是cPanel以及它与WHM之间的联系》

内容

1、要求

2、权限

3、自定义单点登录快捷方式

4、注意事项

1、要求

要使用CPanel单点登录,您的服务器需要运行 CPanel 和 WHM 更高版本。

2、权限

所有客户都有权在其客户账户内的任何托管账户中执行单点登录。

对于具有管理权限的用户,您可以在每个服务器和每个管理员用户组的基础上控制对单点登录功能的访问。

例如,您可以允许管理角色组的用户对多服务器执行单点登录,而管理角色组的用户只能对单一服务器执行单点登录。

可以在配置中为服务器配置权限》 系统设置 》 服务器,编辑要调整其权限的服务器,向下滚动直到到达SSO 访问控制部分。然后在访问控制设置下选择受限,之后将显示管理员角色组列表,您可以选择应允许哪些管理员角色组对所选服务器使用单点登录。推荐阅读:《cPanel教程:如何一键安装Discuz!》

3、自定义单点登录快捷方式

充分利用我们两个产品之间的单点登录集成,这个新的系统主题旨在为您的客户提供一种简单方便的方式来访问CPanel和WHM 的许多最常用的功能。

4、注意事项

可以为 WHMCS 安装中为CPanel 服务器配置的 WHM 用户拥有的任何用户执行 cPanel 单点登录。对于 WHM 经销商帐户,这意味着如果您没有自己的帐户,您将无法对其执行单点登录。尝试登录将导致错误“操作失败无法自动登录。请联系支持人员”。推荐阅读:《如何使用Cpanel正确安装Mbstring》

5月 28th, 2021

国外服务器广泛的定义就是除了国内服务器以外的其他国家的服务器,例如我们熟悉的美国服务器、日本服务器和韩国服务器等。对于国外服务器租用来说,一直以来由于免备案和速度快等多种优势而深受国内站长的关注。当然,除了以上这些优势以外,国外服务器还有一个最大优势就是价格便宜。我们都知道国外服务器提供商推出优惠码和优惠活动,本页面就为大家专门整理国外服务器优惠码信息,同时将持续更新国外服务器优惠促销活动,以帮助大家买到性价比高的国外服务器。推荐阅读:《降低成本为什么要选择国外虚拟主机

 一、RAKsmart

RAKsmart是一家拥有多家自营机房的国外服务器提供商,位于美国西海岸加州地区的RAKsmart机房,拥有超过十年的机房管理经验。近年来,RAKsmart大力拓展中国市场,提供了日本香港美国服务器、高防服务器、站群服务器等多类型服务器产品。当然RAKsmart不但推出了RAKsmart优惠码而且每个月都会推出不同的优惠促销活动,下面我们一起来看下。

RAKsmart国外服务器优惠码:WHT(优惠10%)

 二、BlueHost

BlueHost是一家有着十多年经验的国外服务器商,有良好的口碑,自开通中文站以来便受到国内用户的欢迎。BlueHost国外服务器有美国和香港两个机房可以选择,支持Linux和Windows系统,可以很好的满足国内建站和外贸建站需求。推荐阅读:《国外高防服务器有哪些优势?

三、HostEase

老牌主机商HostEase提供多种国外服务器产品,数据中心位于美国加州、美国Krypt、香港HKColo.NET和香港Telehouse机房等知名机房。由于HostEase国外服务器有性能优越、访问速度快,因而备受国内站长青睐。

HostEase国外服务器优惠码:WHT(仅限于香港服务器20%优惠)

四、Megalayer

Megalayer主机商刚成立不久,助力于为用户在全球范围内提供优质、稳定的互联网服务,包括IDC产品和服务器租赁、等服务。目前Megalayer已经推出香港服务器和香港站群服务器,Megalayer美国服务器也即将上线。

以上就是为大家整理国外服务器优惠码和优惠信息,本页面将持续更新,感兴趣的朋友可以关注下。推荐阅读:《选择国外虚拟主机需要避免哪些误区

7月 17th, 2018

lsof命令是什么?

可以列出被进程所打开的文件的信息。被打开的文件可以是

1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接

8.底层的socket字流,网络socket,unix域名socket

9.在linux里面,大部分的东西都是被当做文件的…..还有其他很多

怎样使用lsof

这里主要用案例的形式来介绍lsof 命令的使用

1.列出所有打开的文件:

lsof

备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位

2. 查看谁正在使用某个文件

lsof /filepath/file

3.递归查看某个目录的文件信息

lsof +D /filepath/filepath2/

备注: 使用了+D,对应目录下的所有子目录和文件都会被列出

4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法

lsof | grep ‘/filepath/filepath2/’

5. 列出某个用户打开的文件信息

lsof -u username

备注: -u 选项,u其实是user的缩写

6. 列出某个程序所打开的文件信息

lsof -c mysql

备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了

7. 列出多个程序多打开的文件信息

lsof -c mysql -c apache

8. 列出某个用户以及某个程序所打开的文件信息

lsof -u test -c mysql

9. 列出除了某个用户外的被打开的文件信息

lsof -u ^root

备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示

10. 通过某个进程号显示该进行打开的文件

lsof -p 1

11. 列出多个进程号对应的文件信息

lsof -p 123,456,789

12. 列出除了某个进程号,其他进程号所打开的文件信息

lsof -p ^1

13 . 列出所有的网络连接

lsof -i

14. 列出所有tcp 网络连接信息

lsof -i tcp

15. 列出所有udp网络连接信息

lsof -i udp

16. 列出谁在使用某个端口

lsof -i :3306

17. 列出谁在使用某个特定的udp端口

lsof -i udp:55

特定的tcp端口

lsof -i tcp:80

18. 列出某个用户的所有活跃的网络端口

lsof -a -u test -i

19. 列出所有网络文件系统

lsof -N

20.域名socket文件

lsof -u

21.某个用户组所打开的文件信息

lsof -g 5555

22. 根据文件描述列出对应的文件信息

lsof -d description(like 2)

23. 根据文件描述范围列出文件信息

lsof -d 2-3

TAGS:
7月 17th, 2018

第一步要做的是通过 SSH 连接到你的 Linux。在 Linux 中查找文件有两种方法。一种是使用find 命令,另外一种是使用locate 命令。

如何在 Linux 中查找一个文件如何在 Linux 中查找一个文件
find 命令

使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:

# find path expression search-term

下面是使用 find 命令根据文件名来查找特定文件的一个例子:

# find -name test.file

命令会搜索整个目录树来查找名为test.file 的文件,并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。

find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显著减少时间,你可以指定搜索的目录。比如,如果你知道 /var中存在 test.file,那就没有必要搜索其它目录。这样,你可以使用下面的命令:

# find /var -name test.file

find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了解更多关于这些选项的信息,你可以使用查看Linux find 命令的手册。

# man find

locate 命令

要在Linux中使用locate命令,首先需要安装它。

如果你正在使用 Ubuntu,运行下面的命令来安装 locate:

# apt-get update# apt-get install mlocate

如果你使用的是 CentOS ,运行下面的命令来安装 locate:

# yum install mlocate

locate 是一种比 find 更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面的命令:

# updatedb

使用 locate 查找文件的语法:

# locate test.file

就像 find 命令一样,locate 也有很多选项来过滤输出。要了解更多你可以查看Linux Locate 命令的手册。

# man locate

希望这篇文能够帮到您,谢谢。

原文来自:https://linux.cn/article-8016-1.html

本文地址:http://www.linuxprobe.com/how-linux-find.html

TAGS:
7月 17th, 2018

查看时区列表: timedatectl list-timezones|grep Asia

设置中国时区: timedatectl set-timezone Asia/Shanghai 执行完后时间就变为北京时间了

查看当前时间: date

查看当前设置:

[root@localhost ~]# timedatectl

Local time: Mon 2017-10-09 16:44:08 CST

Universal time: Mon 2017-10-09 08:44:08 UTC

RTC time: Mon 2017-10-09 08:44:08

Time zone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: yes

RTC in local TZ: no

DST active: n/a

如果没有系统没有安装ntp服务器的话可以安装yum install ntp -y

然后编辑ntp的配置文件vi /etc/ntp.conf (日志文件默认在/var/log/messages中),添加以下几个服务器域名,如果原配置文件没有的话

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

server 3.centos.pool.ntp.org iburst

systemctl restart ntpd

systemctl enable ntpd

这样,服务器端就配置得差不多了,但我为了让效果更明显,把服务器修改为纽约时区,另一台需要同步的linux客户端的时区修改为非洲时间,结果导致,客户端ntpdate之后没有同步,后来才发现,需要在同一时区内才能同步时间,也就是说,服务端和客户端的时区必须在中国这个时区内才可以

下面来测试我们的ntp服务器配置有没有成功

在服务器端(ip:10.0.3.66)上

使用date -s 23:30:30 (时间可以随便改,反正改一个跟客户端时间不一样的就可以了),然后date可以看到时间变成了23:30:30

在客户端上

ntpdate 10.0.3.66 执行后发现,时间也变成了23:30:30

TAGS: ,
7月 17th, 2018

#!/bin/bash
export PATH=/sbin:/usr/sbin:/bin:/usr/bin

iptables -F
iptables -X
iptables -Z

#远程SSH登陆,我们要开启22端口
iptables -A INPUT -p tcp –dport 22 -j ACCEPT

#WEB服务器,开启80端口
iptables -A INPUT -p tcp –dport 80 -j ACCEPT

#邮件服务器,开启25,110端口.
iptables -A INPUT -p tcp –dport 110 -j ACCEPT
iptables -A INPUT -p tcp –dport 25 -j ACCEPT

#FTP服务器,开启20,21端口

iptables -A INPUT -p tcp -m multiport –dport 21,60000:60050 -j ACCEPT
#如果做了DNS服务器,开启53端口

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p udp –sport 53 -j ACCEPT
iptables -A INPUT -p udp –dport 53 -j ACCEPT
#对PING做设置
#iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j DROP
#所以对别人的请求丢弃应该就可以达到别人无法PING的
#iptables -A OUTPUT -p icmp –icmp-type 0 -s localip -j DROP
#其实可以不要 包都丢弃了 还怎么会发出响应的包呢

iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j ACCEPT
iptables -A INPUT -p icmp –icmp-type 0 -s 0/0 -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type 0 -s $FW_IP -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type 8 -s $FW_IP -j ACCEPT

#开放本机对外部80端口
iptables -A INPUT -p tcp ! –syn -s any/0 –sport 80 –dport 1024:65535 -j ACCEPT
iptables -P INPUT DROP

/etc/rc.d/init.d/iptables save
service iptables restart

TAGS:
7月 17th, 2018

Sersync简介

Sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。由金山的周洋开发完成,是目前使用较多的文件同步工具之一。该工具和其他的工具相比有如下优点:

sersync是使用c++编写,由于只同步发生更改的文件,因此比其他同步工具更节约时间、带宽;

安装方便、配置简单;

使用多线程进行同步,能够保证多个服务器实时保持同步状态;

自带出错处理机制,通过失败队列对出错的文件重新出错,如果仍旧失败,则每10个小时对同步失败的文件重新同步;

自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次;

自带socket与http协议扩展,你可以方便的进行二次开发;

rsync+sersync与rsync+Inotify-tools区别

Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。

sersync是基于Inotify开发的,类似于Inotify-tools的工具;

sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

所以,当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。

地址:http://code.google.com/p/sersync/,要翻墙才能下载

http://download.csdn.net/detail/hellopengyl/9918625

安装、配置

和Inotify-tools一样,只需要在数据源端安装

1、查看服务器内核是否支持inotify
[root@localhost src]# ll /proc/sys/fs/inotify #查看服务器内核是否支持inotify,出现下面的内容,说明服务器内核支持inotify
total 0
-rw-r–r– 1 root root 0 Jul 27 10:32 max_queued_events
-rw-r–r– 1 root root 0 Jul 27 10:32 max_user_instances
-rw-r–r– 1 root root 0 Jul 27 10:32 max_user_watches
[root@localhost src]# uname -r #Linux下支持inotify的内核最小为2.6.13
2.6.32-642.el6.x86_64
[root@localhost src]# sysctl -a|egrep -i “max_queued_events|max_user_watches|max_user_instances” #修改inotify默认参数(inotify默认内核参数值太小)
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.inotify.max_queued_events = 16384
fs.epoll.max_user_watches = 201420
[root@localhost src]# vim /etc/sysctl.conf
fs.inotify.max_user_instances = 65535
fs.inotify.max_user_watches = 99999999
fs.inotify.max_queued_events = 99999999
[root@localhost src]# cat /proc/sys/fs/inotify/{max_user_instances,max_user_watches,max_queued_events}
65535
99999999
99999999
[root@localhost src]#

max_queued_events inotify队列最大长度,如果值太小,会出现”** Event Queue Overflow **”错误,导致监控文件不准确

max_user_watches 要同步的文件包含多少目录,可以用:find /home/www.osyunwei.com -type d | wc -l统计,必须保证max_user_watches值大于统计结果(这里/home/www.osyunwei.com为同步文件目录)

max_user_instances 每个用户创建inotify实例最大值

2、安装、配置sersync
[root@localhost src]# tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@localhost src]# mv GNU-Linux-x86 /app/sersync
[root@localhost src]# cd /app/sersync/
[root@localhost sersync]# ls
confxml.xml sersync2
[root@localhost sersync]# cp confxml.xml{,.default}
[root@localhost sersync]# vim confxml.xml

#针对插件的保留字段,保留默认即可。
#在sersync正在运行的控制台,打印inotify,rsync同步命令
#对于xfs文件系统用户,需要将这个选项开启才正常工作
#过滤系统的临时文件,被过滤的文件不会被监控提高,默认过滤系统的临时文件(以“.”开头,以“~”结尾)

#inotify监控文件模块
#如果本地文件删除,不需要删除远程段的文件可以设置成false
#如果将createFolder设为false,则不会对产生的目录进行监控,该目录下的子文件与子目录也不会被监控;
#把createFile(监控文件事件选项)设置为false来提高性能,减少rsync通讯;因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝结束时的时间close_write,同样可以实现文件完整同步;

#进行数据同步的模块
#定义本地要同步的目录
#远程接受同步的IP和rsync模块名
<!—->
<!—->

#自定义rsync参数,默认是-artuz
#开启用户认证,定义用户名密码


#开启会使用rsync -e ssh的方式进行传输

#对于失败的传输,会进行重新传送,再次同步失败后日志记录到/tmp/rsync_fail_log.sh,并且每60分钟对失败的log进行重新同步
#每隔600s会做一次完全同步
#如果开启了filter文件过滤功能,那么crontab整体同步也需要设置过滤,否则虽然实时同步的时候文件被过滤了,但crontab整体同步的时候 如果不单独设置crontabfilter,还会将需过滤的文件同步到远程,
 #crontab的过滤正则与filter过滤的不同,果同时开启了filter与crontab,则要开启crontab的crontabfilter,并按示例设置使其与filter的过滤一一对应。

#当设置为true的时候,将文件同步到远程服务器后会调用name参数指定的插件。

#name指定的插件
#当文件同步完成后,会调用command插件,例如同步文件是file.txt,file.txt文件在改动之后,调用rsync同步到远程服务器后,调用command插件,执行/bin/sh file.txt suffix >/dev/null 2>&1
#如果suffix 设置了,则会放在inotify事件file.txt之后,如果ignoreError为true,则会添加>/dev/null 2>&1

#当filter为ture,include可以只对正则匹配到的文件,调用command。

#http插件,可以向指定域名的主机post,inotify监控的事件。
#socket插件,开启该模块,则向指定ip与端口发送inotify所产生的文件路径信息

#在同步过程中将文件发送到目的服务器后刷新cdn接口。如果不想使用,则设置
#该模块根据chinaCDN的协议,进行设计,当有文件产生的时候,就向cdn接口发送需要刷新的路径位置

#需要监控的目录
#cdnifo标签制定了cdn接口的域名,端口号,以及用户名与密码。

#sendurl标签是需要刷新的url的前缀
<sendurl base="
#regexurl标签中的,regex属性为true时候,使用match属性的正则语句匹配inotify返回的路径信息,并将正则匹配到的部分作为url一部分,

#如果产生文件事件为:/data0/htdoc/cms.xoyo.com/site/jx3.xoyo.com/image/a/123.txt
#经过上面的match正则匹配后,最后刷新的路径是:http://pic.xoyo.com/cms/jx3/a/123.txt;
#如果regex属性为false,最后刷新的路径是http://pic.xoyo.com/cms/jx3.xoyo.com/images/a/123.txt;

[root@localhost sersync]# /app/sersync/sersync2 -d -r -n 8 -o /app/sersync/confxml.xml
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
option: -d run as a daemon
option: -r rsync all the local files to the remote servers before the sersync work
option: -n thread num is: 8
option: -o config xml name: /app/sersync/confxml.xml
parse xml config file
host ip : localhost host port: 8008
Open debug, you will see debug infomation
daemon start,sersync run behind the console
Start the crontab Every 600 minutes rsync all the files to the remote servers entirely
use rsync password-file :
user is rsync
passwordfile is /etc/rsyncd.secret
config xml parse success
please set /etc/rsyncd.conf max connections=0 Manually
sersync working thread 10 = 1(primary thread) + 1(fail retry thread) + 8(daemon sub threads)
Max threads numbers is: 18 = 10(Thread pool nums) + 8(Sub threads)
please according your cpu ,use -n param to adjust the cpu rate
——————————————
rsync the directory recursivly to the remote servers once
working please wait…
execute command: cd /app/rsync_client && rsync -artuz -R –delete ./ rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
crontab command:cd /app/rsync_client && rsync -artuz -R –delete ./ rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
run the sersync:
watch path is: /app/rsync_client
add watch: /app/rsync_client return wd is: 1
add watch: /app/rsync_client/test return wd is: 2
[root@localhost sersync]#

-d 后台启动

-r 同步前将已存在的文件全部同步过去,如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步;

-n 开启的线程总数默认10

-o 指定配置文件,指定 -o 参数可以指定多个不同的配置文件,从而实现sersync多进程多实例的数据同步

-m 不进行同步,只运行插件 ./sersync -m pluginName 例如:./sersync -m command,则在监控到事件后,不对远程目标服务器进行同步,而是直接运行command插件

[root@localhost sersync]# cat monitor_sersync.sh #监控Sersync运行状态的脚本,如果服务停止了就重启服务
#!/bin/bash
server_file=”/app/sersync/sersync2″
conf_file=”/app/sersync/confxml.xml”
options=”-d -r -n 8 -o”
proc_num=$(ps -ef|grep -i sersync2|grep -v “grep”|wc -l)
if [ $proc_num -lt 1 ];then
cd $(dirname $server_file)
nohup $server_file $options $conf_file &
else
exit 0;
fi
[root@localhost sersync]# chmod +x monitor_sersync.sh
[root@localhost sersync]# crontab -l
*/5 * * * * /app/sersync/monitor_sersync.sh
[root@localhost sersync]# /etc/init.d/crond restart
[root@localhost sersync]# vim /etc/rc.d/rc.local #设置开机自动运行脚本
/app/sersync/sersync2 -d -r -n 8 -o /app/sersync/confxml.xml
[root@localhost sersync]#

测试

在客户端监控的目录/app/rsync_client创建文件,然后查看服务器端app_rsync_server模块对应的目录是否同步更新
[root@localhost rsync_client]# touch file{1..9}
inotify wd:1 name:file1 mask:256
inotify wd:1 name:file1 mask:8
inotify wd:1 name:file2 mask:256
inotify wd:1 name:file2 mask:8
inotify wd:1 name:file3 mask:256
inotify wd:1 name:file3 mask:8
inotify wd:1 name:file4 mask:256
inotify wd:1 name:file4 mask:8
inotify wd:1 name:file5 mask:256
[root@localhost rsync_client]# cd /app/rsync_client && rsync -artuz -R “./file2” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
inotify wd:1 name:file5 mask:8
inotify wd:1 name:file6 mask:256
inotify wd:1 name:file6 mask:8
inotify wd:1 name:file7 mask:256
inotify wd:1 name:file7 mask:8
inotify wd:1 name:file8 mask:256
inotify wd:1 name:file8 mask:8
inotify wd:1 name:file9 mask:256
inotify wd:1 name:file9 mask:8
cd /app/rsync_client && rsync -artuz -R “./file1” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file3” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file4” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file5” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file6” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file7” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file8” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
cd /app/rsync_client && rsync -artuz -R “./file9” rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret
[root@localhost rsync_client]# touch file1
inotify wd:1 name:file1 mask:8
[root@localhost rsync_client]# cd /app/rsync_client && rsync -artuz -R “./file1″ rsync@10.15.43.100::app_rsync_server –password-file=/etc/rsyncd.secret

[root@localhost sersync]#

压测

写入10K个文件批量同步测试结果:

[root@localhost rsync_client]# for n in {1..10000};do dd if=/dev/zero of=/app/rsync_client/”$n”.txt bs=1M count=5;done

查看同步速度,当10K个文件同步完后,在/app/rsync_server里发现才同步了600多个文件

多实例情况

配置多个confxml.xml文件(比如:www、bbs、blog….等等),根据不同的需求同步对应的实例文件
[root@localhost rsync_client]# /app/sersync/sersync2 -d -r -n 8 -o /app/sersync/www_confxml.xml
[root@localhost rsync_client]# /app/sersync/sersync2 -d -r -n 8 -o /app/sersync/bbs_confxml.xml
[root@localhost rsync_client]# /app/sersync/sersync2 -d -r -n 8 -o /app/sersync/blog_confxml.xml

文章链接:https://www.centoschina.cn/shell/programming/9368.html

7月 17th, 2018

1 . 编辑:

/etc/rc.local

添加想要被执行的命令即可(默认是以root用户执行)。

注: 有些很特殊的情况 /etc/rc.local 不会被执行,可以 编辑 /etc/init.d/rc.local see link: http://www.linuxidc.com/Linux/2016-12/138665.htm

2 . 以期望的用户执行命令:

su -c ‘ls -l “myfile.txt”‘ guowei &

解释: 其中需要被执行的命令是 ls -l “myfile.txt”, 期望的用户的 guowei, & 表示在后台运行。

3 . 开机以 screen 运行程序脚本,并添加环境变量(no-login):

#!/bin/bash

# 环境变量要在 su 之前设置好,然后 sudo -E 保持环境变量
# 如果直接是root用户执行该脚本,则只需要 su -p 或者 su -m 保持环境变量即可
export GUOWEI_DIR=/home/guowei
export PATH=/opt/bin:$PATH
source /home/guowei/.bashrc

if [ -e /opt/my_app ]; then
# sudo -E su -p -l guowei << BASH # 如果要以 guowei 用户执行那些程序的话,去掉注释即可。 su – 表示切换的环境变量,sudo 需要添加 -E 选项。
su -p guowei << BASH # 以用户 guowei 执行以下命令,注意不要加 sudo, 否则就需要以 sudo -E 执行。
cd /home/guowei
screen -d -m /opt/my_app
# BASH
fi

# 或者将 export 写在 -c 内部, 加上 -c 和 单引号:
su guowei -c 'export A=/opt/bla; blabla~; /opt/my_app' // 注意:双引号跟单引号有区别

7月 17th, 2018

意:此方法不能用于解决统物理内存占用过高,导致部分服务被强制关闭的问题

要从根本上解决服务器内存占用过高的问题,参考这篇文章(https://www.idaobin.com/archives/345)

用root用户创建定时任务

切换到root用户

su – root

创建脚本文件

touch cleanCache.sh

vim cleanCache.sh

添加如下内容:

#!/bin/bash
#每两小时清除一次缓存
echo “开始清除缓存”
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches

创建定时任务

crontab -e //弹出配置文件

添加如下内容:(按需修改)

0 */2 * * * ./cleanCache.sh

保证crond启动以及开机自启

systemctl start crond.service

systemctl enable crond.service

查看buff/cache情况

free -m

查看定时任务是否被执行

cat /var/log/cron | grep cleanCache

注意:只要任务创建了,即使退出用户登录,任务还是会执行

最后:此方法清理缓存只是紧急临时用的,不建议在生产环境中使用此方法

7月 16th, 2018

确认三件事情

一本地ip

二网关

三dns

一就不说了,设置好本地ip和掩码就行了,二网关 添加默认网关,命令:route add defaule gw 192.168.1.1 这是 你用route命令查看最下面会有一条默认路由,走192.168.1.1网关,当然这个网关是根据你本地的网段决定的,三 就是dns了,dns也需要到配置文件修改,#vi etc/resolv.conf 文件,我的文件默认是空白的。添加一条dns记录就可以了,比如我在河南,我添加:nameserver 222.85.85.85 然后保存退出,OK

ping通外网了

顺便记一下几个命令:

删除默认路由 :

route 命令

设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:

# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口

route 命令使用举例

添加到主机的路由

# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40

添加到网络的路由

# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1

添加默认路由

# route add default gw 192.168.1.1

删除路由

# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1

TAGS: