项目cobbler+lamp+vsftp+nfs+数据实时同步(inotify+rsync)

 

 

先配置好epel源

[root@node3 ~]#yum install epel-release -y

 

关闭防火墙和selinux

[root@node3 ~]#iptables -F
[root@node3 ~]#getenforce 
Disabled

 

安装相应的包

[root@node3 ~]#yum install cobbler http tftp dhcp -y

 

启动httpd  cobblerd tftp

[root@node3 ~]#systemctl start httpd cobblerd tftp

 

使用cobbler  check 检测是否有错,根据提示一一修改

[root@node3 ~]#cobbler check
The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
4 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
5 : enable and start rsyncd.service with systemctl
6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

 

修改/etc/cobbler/settings中的server值,改成cobbler服务器的IP地址

[root@node3 ~]#vim /etc/cobbler/settings 
server: 192.168.37.33 #:注意冒号后面有空格!

修改/etc/cobbler/settings中'next_server'的值,改成为提供PXE服务器的IP地址

[root@node3 ~]#vim /etc/cobbler/settings 
next_server: 192.168.37.33  

第3项在centos7中可以不用理会

执行cobbler get-loaders这个命令

[root@node3 ~]#cobbler get-loaders

第5项在centos7中可忽略

第6项可忽略

生成密码来取代默认密码

[root@node3 ~]#openssl passwd -1 -salt 'cobbler' '12345'
$1$cobbler$yheL/tcotyNfj2/ieNTcF.

[root@node3 ~]#vim /etc/cobbler/settings
default_password_crypted: "$1$cobbler$yheL/tcotyNfj2/ieNTcF." 

另外,附加一项,将/etc/cobbler/settings中manage_dhcp这个值设置为1

[root@node3 ~]#vim /etc/cobbler/settings
manage_dhcp: 1

 

重启cobbler

[root@node3 ~]#systemctl restart cobblerd

 

修改cobbler的dhcp模板

[root@node3 ~]#vim /etc/cobbler/dhcp.template 
subnet 192.168.37.0 netmask 255.255.255.0 {
     option routers             192.168.37.2;
     option domain-name-servers 192.168.37.2;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.37.100 192.168.37.254;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;

 

同步

[root@node3 ~]#cobbler sync

 

重启dhcp服务

[root@node3 ~]#systemctl restart dhcpd

 

挂载光盘,并导入镜像

[root@node3 cd]#mount /dev/sr0 /misc/cd
[root@node3 cd]#cobbler import --path=/misc/cd --name=CentOS7.6-x86_64 --arch=x86_64


#: --path    镜像路径
      --name    为安装源起一个名字
      --arch    指定安装源是32位  还是64位

 

查看镜像列表

[root@node3 cd]#cobbler distro list
   CentOS7.6-x86_64

 

制作kickstart文件(建议用system-config-kickstarts生成)

 

将制作好的kickstart文件拷贝到/var/lib/cobbler/kickstarts/目录下

[root@node3 ~]#cp /root/ks.cfg /var/lib/cobbler/kickstarts/

 

添加到profile里面,关联kickstart文件

[root@node3 ~]#cobbler profile edit --name CentOS7.6-x86_64 --distro=CentOS7.6-x86_64 --kickstart=/var/lib/cobbler/kickstart/ks.cfg

 

修改ks.cfg文件

[root@node3 ~]#vim /var/lib/cobbler/kickstarts/ks.cfg

 

然后同步(注意每次修改此文件都必须同步一下)

[root@node3 ~]#cobbler sync

 

到此,就可以安装系统了。

 

接下来我们开始二进制安装mariadb

解包

[root@master-mariadb ~]# tar xf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local/

 

创建软连接

[root@master-mariadb local]# ln -sv mariadb-10.2.25-linux-x86_64/ mysql

 

创建mysql用户

[root@master-mariadb local]# useradd -r -s /sbin/nologin mysql

 

进到/usr/local/mysql目录,设置目录权限

[root@master-mariadb mysql]# chown -R mysql.mysql .

 

初始化安装

[root@master-mariadb mysql]# scripts/mysql_install_db --datadir=/data/mysql --user=mysql

遇到问题

解决

[root@master-mariadb mysql]# yum install libaio -y

 

再次初始化

[root@master-mariadb mysql]# scripts/mysql_install_db --datadir=/data/mysql --user=mysql

 

添加环境变量

[root@master-mariadb mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@master-mariadb mysql]# . /etc/profile.d/mysql.sh

 

将配置文件拷贝到/etc/目录,并准备启动文件

[root@master-mariadb mysql]# cp support-files/my-huge.cnf /etc/my.cnf -b
cp: overwrite ‘/etc/my.cnf’? y
[root@master-mariadb mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@master-mariadb etc]# chkconfig --add mysqld

 

修改配置文件

[root@master-mariadb mysql]# vim /etc/my.cnf

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir=/data/mysql
innodb_file_per_table=ON
skip_name_resolve=ON
log-bin=master-bin

 

启动服务

[root@master-mariadb etc]# service mysqld start

 

 

 

接下来编译httpd和PHP

准备依赖的包

[root@lam ~]# yum install gcc prce-devel openssl-devel expat-devel -y

 

解压httpd以及apr

[root@lam ~]# for i in *.bz2;do tar xf $i;done

出错

解决

[root@lam ~]# yum install bzip2 -y

 

继续解压

[root@lam ~]# for i in *.bz2;do tar xf $i;done

 

将apr和apr-uril移动到srclib目录,一起编译

[root@lam ~]# mv apr-1.7.0 httpd-2.4.39/srclib/apr
[root@lam ~]# mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util

 

进到httpd目录编译安装

[root@lam ~]# cd httpd-2.4.39
[root@lam httpd-2.4.39]# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
[root@lam httpd-2.4.39]# make -j 4 && make install

 

创建Apache用户,修改环境变量

[root@lam httpd-2.4.39]# useradd -r -s /sbin/nologin apache
[root@lam httpd24]# echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
[root@lam httpd24]# . /etc/profile.d/httpd.sh

 

修改配置文件


# User apache Group apache

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #:取消注释,使其支持fcgi协议

<IfModule dir_module>
    DirectoryIndex  index.php index.html
</IfModule>      #:添加index.php使其优先打开PHP页面

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps #: 在尾部添加这两行,使其可以解析PHP页面

ProxyPassMatch "^/(.*\.php)$" "fcgi://127.0.0.1:9000/app/httpd24/htdocs/" #:如有虚拟主机,可将这句话添加到虚拟主机配置段

 

 启动服务

[root@lam httpd24]# apachectl start

 

 

编译安装php

安装所依赖的包

[root@lam yum.repos.d]# yum install libxml2-devel bzip2-devel libmcrypt-devel -y

 

解压PHP包,并进入PHP编译安装

[root@lam ~]# tar xf php-7.3.7.tar.xz
[root@lam ~]# cd php-7.3.7
[root@lam php-7.3.7]# ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo
[root@lam php-7.3.7]# make -j 4 && make install

 

 在解压的目录下拷贝配置文件和启动脚本

[root@lam php-7.3.7]# cp php.ini-production /etc/php.ini
[root@lam php-7.3.7]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@lam php-7.3.7]# chmod +x /etc/init.d/php-fpm

 

将PHP编译的配置文件改名

[root@lam etc]# cd /app/php/etc/
[root@lam etc]# mv php-fpm.conf.default php-fpm.conf
[root@lam etc]# cd /app/php/etc/php-fpm.d/
[root@lam php-fpm.d]# mv www.conf.default www.conf

 

修改www.conf配置文件

[root@lam php-fpm.d]# vim www.conf
user = apache
group = apache

 

启动

[root@lam php-fpm.d]# service php-fpm start

 

现在LAMP已经搭建好了  ,我们可以写一个测试页,测试一下是否连接正常

[root@lam php-fpm.d]# vim /app/httpd24/htdocs/index.php 

<?php
$mysqli=new mysqli("192.168.37.21","maxuebin","12345");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
?>

 

 

 

 

配置NFS服务器

安装所需要的包

[root@nfs ~]# yum install rpcbind nfs-utils -y

 

在/etc/exports.d下新建一个文件,编辑文件(注意要以。exports结尾)

[root@nfs ~]# vim /etc/exports.d/httpd.exports
/data/http 192.168.37.22(rw,async,all_squash,anonuid=997,anongid=995)

#: rw 可读可写
  async 异步同步
  all_squash  将所有在此文件夹建文件的人,全部映射为Apache
  anonuid  设置映射人的UID,此文是映射的Apache
  anongid  设置映射人的GID,此文是映射的Apache

[root@nfs ~]# id apache
uid=997(apache) gid=995(apache) groups=995(apache)

 

启动服务

[root@nfs ~]# systemctl start nfs

[root@nfs ~]# showmount --exports localhost #:查看本机可挂载的目录
Export list for localhost:
/data/http 192.168.37.22
[root@nfs ~]# exportfs -v #: 查看挂载的属性
/data/http     192.168.37.22(async,wdelay,hide,no_subtree_check,anonuid=997,anongid=995,sec=sys,rw,secure,root_squash,all_squash)

 

创建文件,并设置权限

[root@nfs ~]# mkdir /data/http
[root@nfs ~]# setfacl -Rm u:apache:rwx /data/http/

 

在lam服务器挂载

[root@lam ~]# mkdir /data/wordpress

[root@lam ~]# showmount --exports 192.168.37.23
Export list for 192.168.37.23:
/data/http 192.168.37.22

[root@lam ~]# mount 192.168.37.23:/data/http /data/wordpress

 

编辑lam服务器的主配置文件,创建虚拟主机

[root@lam wordpress]# vim /app/httpd24/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf     #:将这一行注释取消,我们把虚拟机单独放一个位置
ProxypassMatch "^/(.*\.php)$" "fcgi://127.0.0.1:9000/app/httpd24/htdocs/" #:删除这一行,我们添加到虚拟主机里面
[root@lam wordpress]# vim /app/httpd24/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot /data/wordpress
ServerName blog.magedu.com
<Directory /data/wordpress>
require all granted
<Directory>
ProxypassMatch "^/(.*\.php)$" "fcgi://127.0.0.1:9000/data/wordpress/"
</VirtualHost>

 

重启apache 服务,并将测试文件放到/data/http下,然后测试

[root@lam wordpress]# apachectl restart

[root@nfs http]# vim /data/http/index.php

<?php
$mysqli=new mysqli("192.168.37.21","maxuebin","12345");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
?>

 

 

在lam服务器上安装基于MySQL的虚拟用户的FTP

下载pam_mysql,并安装依赖包,在lam服务器上编译安装

[root@lam ~]# yum install gcc gcc-c++ pam-devel mariadb-devel
[root@lam ~]# tar xf pam_mysql-0.7RC1.tar.gz
[root@lam ~]# cd pam_mysql-0.7RC1

[root@lam pam_mysql-0.7RC1]# ./configure  --with-pam-mods-dir=/lib64/security/或者./configure --with-pam-mods-dir=/lib64/security --with-mysql=/usr --with-pam=/usr
#: 我们用的第一条,因为mysql和我没在同一台机器
[root@lam pam_mysql-0.7RC1]# make && make install

 

在数据库服务器创建虚拟库表和虚拟账号

[root@master-mariadb ~]# mysql
MariaDB [(none)]> create database vsftpd;  #:创建库
MariaDB [(none)]> use vsftpd;  #使用库
MariaDB [vsftpd]> create table users(id INT AUTO_INCREMENT  NOT NULL PRIMARY KEY,name VARCHAR(50) BINARY NOT NULL,password VARCHAR(48) BINARY NOT NULL);  #:创建表
MariaDB [vsftpd]> INSERT INTO USERS(name,password) values ("ftpuser1",password('centos')");  #:添加用户
MariaDB [vsftpd]> INSERT INTO users(name,password) values ("ftpuser2",password('centos')");  #:添加用户
MariaDB [vsftpd]> grant all on vsftpd.* to 'vsftp'@'192.168.37.%' identified by 'centos'; #:授权一个用户可以管理vsftpd库

 

在lam服务器上安装tftpd

[root@lam pam_mysql-0.7RC1]# yum install vsftpd -y

 

在lam服务器上配置vsftpd服务

[root@lam pam_mysql-0.7RC1]# vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftp passwd=centos host=192.168.37.21 db=vsftpd table=users usercolumn=ftpuser1 passwdcolumn=centos crypt=2
account required pam_mysql.so user=vsftp passwd=centos host=192.168.37.21 db=vsftpd table=users usercolumn=ftpuser2 passwdcolumn=centos crypt=2

crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密

•auth 表示认证
•account 验证账号密码正常使用
•required 表示认证要通过
•pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数
•user=vsftpd为登录mysql的用户
•passwd=magedu 登录mysql的的密码
•host=mysqlserver mysql服务器的主机名或ip地址
•db=vsftpd 指定连接msyql的数据库名称
•table=users 指定连接数据库中的表名
•usercolumn=name 当做用户名的字段
•passwdcolumn=password 当做用户名字段的密码
•crypt=2 密码的加密方式为mysql password()函数加密

 

建立虚拟用户映射的系统用户及对应的目录

[root@lam pam_mysql-0.7RC1]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@lam pam_mysql-0.7RC1]# chmod 555 /var/ftproot  #:根目录不可以有写权限,去除根目录的写权限,
[root@lam pam_mysql-0.7RC1]# mkdir /var/ftproot/upload  
[root@lam pam_mysql-0.7RC1]# setfacl -m u:vuser:rwx /var/ftproot/upload/  

 

修改vsftpd的配置文件

[root@lam pam_mysql-0.7RC1]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
pam_service_name=vsftpd.mysql  #修改此项,原系统用户无法登陆
guest_enable=YES
guest_username=vuser   #:添加这两项

 

在ftp服务器上配置虚拟用户具备不同的访问权限(基于nfs存储)

配置vsftpd为虚拟用户使用配置文件目录

[root@lam pam_mysql-0.7RC1]# vim /etc/vsftpd/vsftpd.conf 
user_config_dir=/etc/vsftpd/vusers_config

 

创建所需的目录,并为虚拟用户提供配置文件

[root@lam pam_mysql-0.7RC1]# mkdir /etc/vsftpd/vusers_config
[root@lam pam_mysql-0.7RC1]# cd /etc/vsftpd/vusers_config
[root@lam vusers_config]# touch ftpuser1 ftpuser2

 

配置虚拟用户访问权限

[root@lam vusers_config]# vim /etc/vsftpd/vusers_config/ftpuser1
anon_upload_enable=YES        #  匿名上传,注意文件权限
anon_mkdir_write_enable=YES   #:匿名建目录
anon_other_write_enable=YES   #:可修改和删除上传的文件
anon_world_readable_only=NO  #: (默认为yes)只能下载全部读的文件
local_root=/data/ftpuser1 #:指定目录
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。如要让用户wang具有上传文件的权限,可修改/etc/vsftpd/vusers_config/wang文件,在里面添加如下选项并设置为YES即可,只读则设为NO

 

在NFS服务器先创建 跟lam服务器vuser相同的UID和GID

[root@nfs vsftpd]# groupadd -g 1001 vuser
[root@nfs vsftpd]# useradd -r -u 1001 -g 1001  vuser

 

在NFS服务器将数据目录共享出去并修改数据目录的权限

[root@nfs vsftpd]# vim /etc/exports.d/vsftpd.exports
/data/vsftp 192.168.37.22(rw,async,all_squash,anonuid=1001,anongid=1001)
[root@nfs vsftpd]# chown vuser.vuser /data/vsftp/
[root@nfs vsftpd]# chmod 555 /data/vsftp/ #因为vsftp的根不允许有写权限 ,必须修改权限
[root@nfs vsftpd]# mkdir /data/vsftp/source #然后在创建一个目录,方便用户上传下载,
[root@nfs vsftpd]# chown vuser.vuser /data/vsftp/source/ # 把这个目录的属主属组也要改成这个
[root@nfs vsftpd]# setfacl -m u:vuser:rwx /data/vsftp/source/ #设置成rwx权限,才可以上传和下载

 

然后重启

[root@nfs vsftpd]# systemctl restart nfs

 

在lam服务器去挂载共享的这个目录

[root@lam vsftp]# mount 192.168.37.23:/data/vsftp /data/vsftp

 

然后修改用户的配置文件

[root@lam vsftp]# vim /etc/vsftpd/vusers_config/ftpuser2
download_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
local_root=/data/vsftp

 

如果想让匿名用户也访问这个文件,可以改变ftp用户的家目录为/data/vsftp,并编辑主配置文件添加一项

[root@lam vsftp]# usermod -d /data/vsftp/ -U ftp
[root@lam source]# vim /etc/vsftpd/vsftpd.conf
anon_root=/data/vsftp

 

这样就可以了

 

配置mariadb的半同步复制

源码编译,跟前面一样

编辑master主服务器的配置文件并重启服务(如果是编译安装的记得查看配置文件中有没有server-id 和log-bin)

[root@master-mariadb ~]# vim /etc/my.cnf

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir=/data/mysql   #指定数据库目录
innodb_file_per_table=ON  #存储为单张表
skip_name_resolve=ON  # 跳过域名解析
log-bin=master-bin   #开启二进制日志
server_id=1   #设置一个全局唯一的serverID
[root@master-mariadb ~]# service mysqld restart

 

在master主服务器上安装插件

MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_master  #:安装插件 SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> set global rpl_semi_sync_master_enabled=on;  #开启插件
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show master status;  #查看二进制日志的位置
MariaDB [(none)]> grant replication slave on *.* to "mysql"@'192.168.37.%' identified by 'centos'; #:创建一个有复制权限的账号
MariaDB [(none)]> flush privileges; #刷新权限

 

做一个完全备份,将文件传给slave-master服务器

[root@master-mariadb ~]# mysqldump --all-databases -F --single-transaction --master-data=1 >all.sql

[root@master-mariadb ~]# scp all.sql 192.168.37.24:/root/

 

编辑修改slave-mariadb的配置文件并启动服务(如果是编译安装的记得查看配置文件中有没有server-id 和log-bin)

[root@slave-master mysql]# vim /etc/my.cnf
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir=/data/mysql
relay_log=relay-bin  #开启中继日志
server_id=2
innodb_file_per_table=ON
skip_name_resolve=ON

[root@slave-master mysql]# service mysqld restart

 

在slave-master上修改备份的文件并将完全备份导入

[root@slave-master ~]# vim all.sql
CHANGE MASTER TO master_host='192.168.37.21',master_user='repluser',master_password='centos',MASTER_LOG_FILE='mysql-bin.000007', MASTER_LOG_POS=385;
[root@slave-master ~]# mysql < all.sql  #将完全备份导入到slave服务器

 

进去到slave-master的mysql服务

[root@slave-master ~]# mysql
MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SET GLOBAL rpl_semi_sync_slave_enabled=1;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> start slave;

 到这里主从就做完了

 

 

在次搭建一个LAM的服务器

编译安装,跟上面一样,可参考上面编译安装

然后挂载nfs共享出来的/data/httpd

 

 

实现inotify+rsync同步

在inotify服务器安装rsync

[root@inotify ~]# yum install rsync

 

在inotify服务器修改rsync的配置文件

[root@inotify ~]# vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
hosts allow = 192.168.37.0/24
[backup]
path = /backup/
comment = backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass

# 具体的参数意思详见本文 inotify+rsync实时同步

 

服务器端生成验证文件,并修改权限,启动服务

[root@inotify ~]# echo "rsyncuser:centos" > /etc/rsync.pass
[root@inotify ~]# chmod 600 /etc/rsync.pass 
[root@inotify ~]# systemctl start rsyncd

 

在nfs服务器安装inotify-tools包和rsync包

[root@nfs data]# yum install inotify-tools -y
[root@nfs data]# yum install rsync -y
#基于epel源

 

在nfs服务器配置密码文件并修改权限

[root@nfs data]# echo "centos" > /etc/rsync.pass
[root@nfs data]# chmod 600 /etc/rsync.pass

 

在nfs服务器配置脚本

[root@nfs data]# vim /etc/inotify_rsync.sh

#!/bin/bash
SRC='/data/'
DEST='rsyncuser@192.168.37.26::backup'
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
done

 

在nfs服务器安装screen文件

[root@nfs data]# yum install screen -y

 

用screen去运行脚本

[root@nfs ~]# screen -S inotify      #为screen窗口起个名字
[root@nfs ~]# . /etc/inotify_rsync.sh  #在screen窗口执行命令

[root@nfs ~]# screen -list
There is a screen on:
    28297.inotify    (Detached)
1 Socket in /var/run/screen/S-root.  #  列出screen任务的窗口

[root@nfs ~]# screen -r inotify   # 回到screen窗口里面

 

 

 

实现web管理的Powerdns

在lam服务器安装包(基于epel源)

[root@lam ~]# yum install -y pdns pdns-backend-mysql

 

在master-mariadb服务器上创建数据库,表和用户

MariaDB [(none)]> create database powerdns;
MariaDB [(none)]> grant all on powerdns.* to 'powerdns'@'192.168.37.22' identified by 'centos';
MariaDB [powerdns]> use powerdns;

#创建表参照
https://doc.powerdns.com/md/authoritative/backend-generic-mysql/

 

在lam服务器修改powerdns的配置文件

launch=gmysql
gmysql-host=192.168.37.21
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=centos

 

在lam服务器启动服务

[root@lam ~]# systemctl start pdns
[root@lam ~]# systemctl enable pdns

 

posted @ 2019-07-31 15:56  Linus小跟班  阅读(320)  评论(0编辑  收藏  举报