标签归档:linux

mysql自动备份分卷脚本,mariadb自动分卷备份脚本

mysql自动备份分卷脚本

centos 。。。用zip 完成分卷压缩

有时候数据库太大了想分卷备份的话可以试下以下脚本哦
先新个sqlback.sh例如

其中

user                                         #用户名

password                                #密码

dbname                                    #数据库名

/root/                                      #要保存的目录

/usr/bin/mysqldump               #mysqldump启动

FENSIZE=10m                             #10M改成自已想分的大小

换成自已服务器上的配置。

然后保存

更改权限

最后添加到自动动行脚本就可以了

crontab -e

* 3 * * * root /root/sqlback.sh

/sbin/service crond start

如果想合卷可以用

 

linux一键安装包OneinStack支持PHP/JAVA环境一键配置

下面介绍下linux一键安装包OneinStack  支持PHP/JAVA环境一键配置

OneinStack包含以下组合:
lnmp(Linux + Nginx+ MySQL+ PHP)

lamp(Linux + Apache+ MySQL+ PHP)

lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache):Nginx处理静态,Apache(mod_php)处理动态PHP

lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA

lnmh(Linux + Nginx+ MySQL+ HHVM)

OneinStack支持系统版本(包含32和64位系统):
CentOS 5~7(包括redhat)
Debian 6~8
Ubuntu 12.04~15.04
Aliyun Linux 5.7、15.1
OneinStack特性
持续不断更新
源码编译安装,大多数源码是最新stable版,并从官方网址下载
一些安全优化
提供多个数据库版本(MySQL-5.6, MySQL-5.5, MariaDB-10.0, MariaDB-5.5, Percona-5.6, Percona-5.5)
提供多个PHP版本(php-5.3, php-5.4, php-5.5,php-5.6,php-7/phpng(RC))
提供Nginx、Tengine
提供多个Apache版本(Apache-2.4,Apache-2.2)
提供多个Tomcat版本(Tomcat-8,Tomcat-7)
提供多个JDK版本(JDK-1.8,JDK-1.7,JDK-1.6)
根据自己需求安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。及php加解密工具ionCube、ZendGuardLoader
根据自己需求安装Pureftpd、phpMyAdmin
根据自己需求安装Memcached、Redis
根据自己需求可使用tcmalloc或者jemalloc优化MySQL、Nginx
提供添加虚拟主机脚本
提供Nginx/Tengine、PHP、Redis、phpMyAdmin升级脚本
提供本地备份和远程备份(服务器之间rsync)脚本
提供CentOS 6、7下HHVM安装
OneinStack用到的开源软件版本如下:
# WEB # DB
nginx_version=1.9.5 mysql_6_version=5.6.27
tengine_version=2.1.1 mysql_5_version=5.5.46
apache_2_version=2.2.31 mariadb_10_version=10.0.21
apache_4_version=2.4.17 mariadb_5_version=5.5.46
tomcat_7_version=7.0.64 percona_6_version=5.6.25-73.1
tomcat_8_version=8.0.28 percona_5_version=5.5.45-37.4
# PHP # JDK
php_3_version=5.3.29 jdk_6_version=1.6.0_45
php_4_version=5.4.45 jdk_7_version=1.7.0_80
php_5_version=5.5.30 jdk_8_version=1.8.0_60
php_6_version=5.6.14
php_7_version=7.0.0RC5
# REDIS # MEMCACHED
redis_version=3.0.5 memcached_version=1.4.24
# JEMALLOC & TCMALLOC # PHPMYADMIN
tcmalloc_version=2.4 phpMyAdmin_version=4.4.15
jemalloc_version=4.0.3
# PURE-FTPD
pureftpd_version=1.0.42

官网http://oneinstack.com/

 

安装步骤

注意:如果数据盘,建议您先挂载数据盘,建议将网站内容、数据库放在数据盘中。

如何添加虚拟主机?

如何删除虚拟主机?

如何管理FTP账号?

如何备份?

如何管理服务?

Nginx/Tengine:

MySQL/MariaDB/Percona:

PHP:

HHVM:

:hhvm进程交给supervisord管理

Apache:

Tomcat:

Pure-Ftpd:

Redis:

Memcached:

如何更新版本?


如何卸载?

linux-centos7安装mariadb教程(mysql的替代品哦更强大)

mariadb做为mysql的替代品 现在centos的新版本yum包已换成mariadb

安装一些库

查看SELinux状态:
/usr/sbin/sestatus -v

#如果SELinux status参数为enabled即为开启状态;
如果为关闭可以跳过
修改/etc/selinux/config文件
vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled
重启机器

下载mariadb安装包到cd /usr/local/src/

 

 

下载地址分linux64位linux32位
linux64位下载地址
http://mirrors.opencas.cn/mariadb/mariadb-10.0.21/bintar-linux-glibc_214-x86_64/mariadb-10.0.21-linux-glibc_214-x86_64.tar.gz

linux32位下载地址
http://mirrors.opencas.cn/mariadb/mariadb-10.0.21/bintar-linux-glibc_214-x86/mariadb-10.0.21-linux-glibc_214-i686.tar.gz

将压缩包解压到/usr/local 目录下

 

创建mariadb 数据初始化目录/data/mysql这边把mysql放到云盘上data为新挂载盘

 

添加系统用户mysql,禁止登陆系统目录所属主和组都修改为mysql

做个mariadb 目录的连接

 

进入目录

 

开始安装

 

如果没有报错就复制配置文件到etc目录下

是否覆盖 选 y
y
复制mysql 启动脚本文件到/etc/init.d的目录下

修改755权限

 

定义数据存放路径

datadir=/data/mysql
将mariadb自带命令放入$PATH
PATH=$PATH:/etc/init.d/  #当前有效,重启shell就失效

 

启动mariadb

 

最后一步很重要哦 删除不用的用户新建用户

 

回车

y回车

输入root密码

再输入root密码

再回车

回车

回车 到出现

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 

怎么在 Linux中大量屏蔽恶意IP地址

可以加黑名单
iptables -N blacklist
iptables -A blacklist -s 188.143.232.0/24 -j DROP
iptables -A INPUT -j blacklist
iptables -A OUTPUT -j blacklist
iptables -A FORWARD -j blacklist

如果有大量屏蔽恶意IP地址。这时候可以用 IP集。IP集是一个内核特性,它允许多个(独立)IP地址、MAC地址或者甚至是端口号被编码和有效地存储在位图/哈希内核数据结构中。一旦IP集创建之后,你可以创建一条iptables规则来匹配这个集合。

它可以让你用一条iptable规则匹配多个ip地址!你可以用多个IP地址和端口号的方式来构造IP集,并且可以动态地更新规则而没有性能影响。

在Linux中安装IPset工具

为了创建和管理IP集,你需要使用称为ipset的用户空间工具。

要在Debian、Ubuntu或者Linux Mint上安装:

  1. $ sudo aptget install ipset

Fedora或者CentOS/RHEL 7上安装:

  1. $ sudo yum install ipset

使用IPset命令禁止IP

让我通过简单的示例告诉你该如何使用ipset命令。

首先,让我们创建一条新的IP集,名为banthis(名字任意):

  1. $ sudo ipset create banthis hash:net

第二个参数(hash:net)是必须的,代表的是集合的类型。IP集有多个类型。hash:net类型的IP集使用哈希来存储多个CIDR块。如果你想要在一个集合中存储单独的IP地址,你可以使用hash:ip类型。

一旦创建了一个IP集之后,你可以用下面的命令来检查:

  1. $ sudo ipset list

 

这显示了一个可用的IP集合列表,并有包含了集合成员的详细信息。默认上,每个IP集合可以包含65536个元素(这里是CIDR块)。你可以通过追加”maxelem N”选项来增加限制。

  1. $ sudo ipset create banthis hash:net maxelem 1000000

现在让我们来增加IP块到这个集合中:

  1. $ sudo ipset add banthis 1.1.1.1/32
  2. $ sudo ipset add banthis 1.1.2.0/24
  3. $ sudo ipset add banthis 1.1.3.0/24
  4. $ sudo ipset add banthis 1.1.4.10/24

你会看到集合成员已经改变了。

  1. $ sudo ipset list

 

现在是时候去创建一个使用IP集的iptables规则了。这里的关键是使用”-m set –match-set “选项。

现在让我们创建一条让之前那些IP块不能通过80端口访问web服务的iptable规则。可以通过下面的命令:

  1. $ sudo iptables I INPUT m set matchset banthis src p tcp destinationport 80 j DROP

如果你愿意,你可以保存特定的IP集到一个文件中,以后可以从文件中还原:

  1. $ sudo ipset save banthis f banthis.txt
  2. $ sudo ipset destroy banthis
  3. $ sudo ipset restore f banthis.txt

上面的命令中,我使用了destory选项来删除一个已有的IP集来看看我是否可以还原它。

自动IP地址禁用

现在你应该看到了IP集合的强大了。维护IP黑名单是一件繁琐和费时的工作。实际上,有很多免费或者收费的服务可以来帮你完成这个。一个额外的好处是,让我们看看如何自动将IP黑名单加到IP集中。

首先让我们从iblocklist.com得到免费的黑名单,这个网站有不同的免费和收费的名单。免费的版本是P2P格式。

接下来我要使用一个名为iblocklist2ipset的开源Python工具来将P2P格式的黑名单转化成IP集。

首先,你需要安装了pip。

使用的下面命令安装iblocklist2ipset。

  1. $ sudo pip install iblocklist2ipset

在一些发行版如Fedora,你可能需要运行:

  1. $ sudo pythonpip install iblocklist2ipset

现在到iblocklist.com,抓取任何一个P2P列表的URL(比如”level1″列表)。

 

粘帖URL到下面的命令中。

  1. $ iblocklist2ipset generate \
  2. ipset banthis “http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz” \
  3. > banthis.txt

上面的命令运行之后,你会得到一个名为banthis.txt的文件。如果查看它的内容,你会看到像这些:

  1. create banthis hash:net family inet hashsize 131072 maxelem 237302
  2. add banthis 1.2.4.0/24
  3. add banthis 1.2.8.0/24
  4. add banthis 1.9.75.8/32
  5. add banthis 1.9.96.105/32
  6. add banthis 1.9.102.251/32
  7. add banthis 1.9.189.65/32
  8. add banthis 1.16.0.0/14

你可以用下面的ipset命令来加载这个文件:

  1. $ sudo ipset restore f banthis.txt

现在可以查看自动创建的IP集:

  1. $ sudo ipset list banthis

在写这篇文章时候,“level1”类表包含了237,000个屏蔽的IP列表。你可以看到很多IP地址已经加入到IP集中了。

最后,创建一条iptables命令来屏蔽这些坏蛋!

总结

这篇文章中,我描述了你该如何用强大的ipset来屏蔽不想要的IP地址。同时结合了第三方工具iblocklist2ipset,这样你就可以流畅地维护你的IP屏蔽列表了。

 

 

iptables阻制ip段iptables v1.5: invalid mask `255′ specified

最近网站被别人恶意提交数据下面来屏蔽下他的数据包

iptables -I INPUT -s 188.143.232.0/24 -j DROP

下面来试下1-255发现报错

iptables v1.5: invalid mask 255' specified
Try
iptables -h’ or ‘iptables –help’ for more information.

查下资料原来 0/24 是屏蔽ip段

有0/8       0/16     0/24   几种ip段

iptables -A FORWARD -s 188.143.232.0/24 -j DROP

centos7关闭firewalld防火墙指令更换Iptables防火墙

centos7关闭firewalld防火墙指令更换Iptables防火墙

…………………………….

RPM软件包的安装、升级、删除等

RPM软件包的安装、升级、删除等;
1、安装和升级一个rpm 包;

[root@localhost beinan]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包;
[root@localhost beinan]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包;
如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他
所依赖的包来解决依赖关系,或者强制安装;

语法结构:

[root@localhost beinan]# rpm -ivh file.rpm –nodeps –force
[root@localhost beinan]# rpm -Uvh file.rpm –nodeps –force
更多的参数,请查看 man rpm

举例应用:
[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing… ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh –replacepkgs lynx-2.8.5-23.i386.rpm
Preparing… ########################################### [100%]
1:lynx ########################################### [100%]
注: –replacepkgs 参数是以已安装的软件再安装一次;有时没有太大的必要;

测试安装参数 –test ,用来检查依赖关系;并不是真正的安装;

[root@localhost RPMS]# rpm -ivh –test gaim-1.3.0-1.fc4.i386.rpm
Preparing… ########################################### [100%]
由新版本降级为旧版本,要加 –oldpackage 参数;

[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh –oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing… ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;

[root@localhost RPMS]# rpm -ivh –relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing… ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把lynx-2.8.5-23.i386.rpm 指定安装在 /opt/lynx 目录中;
[root@localhost RPMS]# rpm -ivh –relocate /=/opt/lynx –badreloc lynx-2.8.5-23.i386.rpm
Preparing… ########################################### [100%]
1:lynx ########################################### [100%]
我们安装在指定目录中的程序如何调用呢?一般执行程序,都放在安装目录的bin或者sbin目录中;看下面的例子;如果有错误输出,就做相应的链接,用 ln -s ;

[root@localhost RPMS]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org

2、删除一个rpm 包;

首先您要学会查询rpm 包 ;请看前面的说明;

[root@localhost beinan]#rpm -e 软件包名

举例:我想移除lynx 包,完整的操作应该是:
[root@localhost RPMS]# rpm -e lynx
如果有依赖关系,您也可以用–nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件;

[root@localhost beinan]# rpm -e lynx –nodeps

linux中RPM是RedHat Package Manager(RedHat软件包管理工具)

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

 

-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

 

复制代码
rpm -q samba //查询程序是否安装rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh –relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录

rpm -ivh –test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
rpm -Uvh –oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安装]–all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]–list所有文件安装目录rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]–query–package–install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]–file
rpm -qpR file.rpm       #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -ivh file.rpm  #[安装新的rpm]–install–verbose–hash
rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]–upgrade
rpm -e file.rpm      #[删除一个rpm包]–erase

复制代码

常用参数:

Install/Upgrade/Erase options:

复制代码
-i, –install                     install package(s)
-v, –verbose                     provide more detailed output
-h, –hash                        print hash marks as package installs (good with -v)
-e, –erase                       erase (uninstall) package
-U, –upgrade=<packagefile>+      upgrade package(s)
--replacepkge                    无论软件包是否已被安装,都强行安装软件包
–test                            安装测试,并不实际安装
–nodeps                          忽略软件包的依赖关系强行安装
–force                           忽略软件包及文件的冲突Query options (with -q or –query):
-a, –all                         query/verify all packages
-p, –package                     query/verify a package file
-l, –list                        list files in package
-d, –docfiles                    list all documentation files
-f, –file                        query/verify package(s) owning file
复制代码

RPM源代码包装安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:

rpm –recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:rpm –rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。

RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;

RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;

一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的, Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的;

 


一、RPM包管理的用途;

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;


二、RPM 的使用权限;

RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;


三、rpm 的一点简单用法;

我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;

一)初始化rpm 数据库;

通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;

二)RPM软件包管理的查询功能:

命令格式

RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm

1、对系统中已安装软件的查询;

1)查询系统已安装的软件;

-q就是 –query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;

查看系统中所有已经安装的包,要加 -a 参数 ;

如果分页查看,再加一个管道 |和more命令;

在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;

上面这条的功能和 rpm -q gaim 输出的结果是一样的;

2)查询一个已经安装的文件属于哪个软件包;

注:文件名所在的绝对路径要指出

举例:

3)查询已安装软件包都安装到何处;

例如

4)查询一个已安装软件包的信息

5)查看一下已安装软件的配置文件;

 

6)查看一个已经安装软件的文档安装位置:

7)查看一下已安装软件所依赖的软件包及文件;

查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:

2、对于未安装的软件包的查看:

查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;

1)查看一个软件包的用途、版本等信息;

2)查看一件软件包所包含的文件;

3)查看软件包的文档所在的位置;

4)查看一个软件包的依赖关系

5)查看一个软件包的配置文件;

 

Centos7下安装配置Apache

yum -yinstall httpd

rpm -qi httpd

然后修改配置

cd /etc/httpd/conf

ls

vi httpd.conf

//查看配置文件,我们修改下root目录的配置:
DocumentRoot “/var/www/html”

//设置为自动启动
# systemctl enable httpd.service
ln -s’/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
//在centos7中chkconfig httpd on 被替换成 systemctl enable httpd