项目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
项目cobbler+lamp+vsftp+nfs+数据实时同步(inotify+rsync)的更多相关文章
- 实时同步inotify+rsync
目的,要求 nfs储存服务器与backup备份服务器,数据同步,万一nfs储存服务器挂了,数据还在 实时同步备份软件服务 1)inotify 实时同步软件 2)sersync 实时同步软件 实时同步原 ...
- centos文件实时同步inotify+rsync
我的应用场景是重要文件备份 端口:873,备份端打开即可 下载地址:https://rsync.samba.org/ftp/rsync/src/ 服务端和客户端要保持版本一致 网盘链接:https:/ ...
- CentOS 6.5 rsync+inotify实现数据实时同步备份
CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...
- inotify和rsync实现数据实时同步
数据的实时同步 实现实时同步 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 实现实时同步的方法 ino ...
- 项目实战:rsync+sersync实现数据实时同步
一.组网介绍 本次实验使用两台主机: qll251 角色:Rsync server + Sersync server qll252 角色: Rsync client 本次实验采用CentOS7.7系统 ...
- MySQL 到 ES 数据实时同步技术架构
MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...
- Mysql数据实时同步
企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...
- Rsync+sersync实现数据实时同步
前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...
- CentOS7下Rsync+sersync实现数据实时同步
近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...
随机推荐
- lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok
在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null ...
- 大一C语言学习笔记(6)---自省篇--流程控制;break,continue,return间的异同;数组应用到循环语句中需要注意的问题;++i 和 i++的异同等。
下面是傻瓜博主"曾经"犯过的错和一些心得: ༼ つ ◕_◕ ༽つ 1.要想流程控制学好,一定要学会化繁为简,举栗子: 三目运算符 (略?略:略)---就是一个数字嘛, ...
- Python编程环境设置
第1节.Python编程环境设置 一.sublime相关 1.sublime REPL插件安装 (1)安装 先打开插件安装面板:ctrl+shift+P 输入install ,选择Package Co ...
- AnnotationConfigApplicationContext(1)之初始化Scanner和Reader
AnnotationConfigApplicationContext(1)初始化Scanner和Reader 我们以AnnotationConfigApplicationContext为起点来探究Sp ...
- Java安全之基于Tomcat的通用回显链
Java安全之基于Tomcat的通用回显链 写在前面 首先看这篇文还是建议简单了解下Tomcat中的一些概念,不然看起来会比较吃力.其次是回顾下反射中有关Field类的一些操作. * Field[] ...
- Promise(resolve,reject)的基本使用
什么是Promise? Promise是一个构造函数,其原型上有 then.catch方法,还有reslove,reject等静态方法.通过创建Promise实例,可以调用Promise.protot ...
- idea Error: java: OutOfMemoryError: insufficient memory 的处理
idea Error: java: OutOfMemoryError: insufficient memory处理 在更新项目代码或者运行项目时报错 OutOfMemoryError: insuffi ...
- 实践案例1-利用低代码开发平台Odoo快速构建律师事务所管理系统
今年10月份中旬的时候,有一段时间没联系的中学同学,我跟他关系比较好,突然打电话给我,希望我给他夫人的律所开发一个小系统.记得十几年前,当他还在他叔叔公司上班的,他是负责销售的,我们几乎每周都碰面,那 ...
- CF1004D Sonya and Matrix
不要想当然. 考虑到我们一定有存在个数为\(4\)的倍数的数. 否则第一个不是的数即为\(x\). 那么我们设\(b\)为所有的数的最大值. 那么显然有\(|n - x| + |m - y| = b\ ...
- cd-hit 去除冗余序列
最近一篇NG中使用到的软件,用来去除冗余的contigs,现简单记录. CD-HIT早先是一个蛋白聚类的软件,其主要的特定就是快!(ps:不是所有快的都是好的) 其去除冗余序列的大概思路就是: 首先对 ...