开始今日份整理python
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,这个功能管理员又爱又恨,大多数生产环境也是关闭的作法,安全手段使用其余方法。mysql
大多数ssh链接不上虚拟机,都是由于防火墙和selinux阻挡了。linux
永久关闭方式:nginx
1.修改配置文件,永久生效关闭selinux
cp /etc/selinux/config /etc/selinux/config.bak #修改前备份
2.修改方式能够vim编辑,找到
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
3.用sed替换
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
4.检查状态
grep "SELINUX=disabled" /etc/selinux/config
#出现结果即表示修改为功
临时关闭selinux(命令行修改,重启失效):sql
getenforce #获取selinux状态
#修改selinux状态
setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
数字0 表示permissive,给出警告,不会阻止,等同disabled
数字1表示enforcing,表示开启
注意:修改selinux配置后,想要生效还得重启系统,技巧就是(修改配置文件+命令行修改,达到当即生效) 生产环境的服务器是禁止随意重启的!!!!shell
在学习阶段,关闭防火墙能够更方便的学习,在企业环境中,通常只有配置外网ip的linux服务器才会开启防火墙,可是对于高并发流量的业务服务器仍然是不能开启的,会有很大性能损失,所以须要更nb的硬件防火墙。数据库
关闭防火墙具体操做以下:django
iptables -L 查看防火墙规则
iptables -F 清空防火墙规则
centos7默认已经使用firewall做为防火墙了
1.关闭防火墙
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld#关闭防火墙开机启动
systemctl is-enabled firewalld.service#检查防火墙是否启动
此项优化为可选项,根据我的状况选择是否调整Linux系统的字符集,字符集就是一套文字符号以及编码。vim
Linux下经常使用字符集有:windows
#查看系统当前字符集
echo $LANG
#检查xshell crt的字符集
#命令修改字符集
export LANG=en_US.utf8
1.修改配置文件/etc/locale.conf
LANG="zh_CN.UTF-8"
2.更改后查看系统语言变量
locale
乱码核心解决办法
1.系统字符集utf8
2.xshell字符集utf8
3.文件字符集一致zh_CN.UTF-8
计划任务:后台运行,到了预约的时间就会自动执行的任务,前提是:事先手动将计划任务设定好。这就用到了crond服务
crontab命令被用来提交和管理用户的须要周期性执行的任务,与windows下的计划任务相似
语法:
crontab (选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该用户的计时器设置; -u<用户名称>:指定要设定计时器的用户名称。 存放定时任务的文件 /var/spool/cron
实例:
#每分钟执行一次命令
* * * * *
*/1 * * * *
#每小时的3,15,35分执行命令
3,15,35 * * * * 执行命令
#在上午8-11点的第3和第15分钟执行
3,15 8-11 * * * 执行
#每晚21:30执行命令
30 21 * * * 命令
#每周6、日的1:30执行命令
30 1 * * 6,7 执行命令
#每周一到周五的凌晨1点,清空/tmp目录的全部文件
0 1 * * 1-5 rm -rf /tmp/*
#每晚的21:30重启nginx
30 21 * * * systemctl restart nginx
#每个月的1,10,22日的4:45重启nginx
45 4 1,10,22 * * systemctl restart nginx
#每一个星期一的上午8点到11点的第3和15分钟执行命令
3,15 8-11 * * 1 执行命令
天天凌晨6点备份mysql数据库
0 6 * * * 备份数据库mysqldump
1.tree命令
树状显示目录及子目录文件,须要安装才可使用
yum install tree
2.设置主机别名:
hostnamectl set-hostname qishi666
3.Lrzsz
#安装此软件,便可拖拽上传下载linux代码到windows
yum install lrzsz
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可使系统管理人员交互和自动化地更细与管理RPM软件包,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软体包,无须繁琐地一次次下载、安装。
尽管 RPM 可以帮助用户查询软件相关的依赖关系,但问题仍是要运维人员本身来解决, 而有些大型软件可能与数十个程序都有依赖关系,在这种状况下安装软件会是很是痛苦的。 Yum 软件仓库即是为了进一步下降软件安装难度和复杂度而设计的技术。Yum 软件仓库能够 根据用户的要求分析出所需软件包及其相关的依赖关系,而后自动从服务器下载软件包并安 装到系统。Yum 软件仓库中的 RPM 软件包能够是由红帽官方发布的,也能够是第三方发布的,当 然也能够是本身编写的。
yum提供了查找、安装、删除某一个、一组甚至所有软件包的命令,并且命令简洁而又好记。
选项:
yum(选项)(参数) -h:显示帮助信息; -y:对全部的提问都回答“yes”; -c:指定配置文件; -q:安静模式; -v:详细模式; -d:设置调试等级(0-10); -e:设置错误等级(0-10); -R:设置yum处理一个命令的最大等待时间; -C:彻底从缓存中运行,而不去下载或者更新任何头文件。
#进入yum源目录 cd /etc/yum.repos.d/ #查看yum源文件 ls –l
1.好习惯,备份yum源 mkdir repo_bak mv *.repo repo_bak/ 2.下载阿里云repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 3.清空yum缓存而且生成新的yum缓存 yum clean all yum makecache 4.安装软件扩展源 yum install -y epel-release
yum repolist all 列出全部仓库 yum list all 列出仓库全部软件包 yum info 软件包名 查看软件包信息 yum install 软件包名 安装软件包 yum reinstall 软件包名 从新安装软件包 yum update 软件包名 升级软件包 yum remove 软件包名 移除软件包 yum clean all 清楚全部仓库缓存 yum check-update 检查能够更新的软件包 yum grouplist 查看系统中已安装的软件包 yum groupinstall 软件包组 安装软件包组
3.2.1 下载python3的源码包
3.2.2 下载python3编译的依赖包
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
3.2.3 解压缩源码包
tar -zxvf Python-3.6.6.tgz
3.2.4 编译且安装
1.切换到源码包目录
cd Python-3.6.6
2. ls或者ll查看目录下文件源码包内容
3.释放编译文件
./configure --prefix=/opt/python36
4.编译与安装
make && make install
编译安装,此步才会最终生成 /opt/python36/
注意:在上述几步中,必定要在Python-3.6.6目录下安装!在上述几步中,必定要在Python-3.6.6目录下安装!在上述几步中,必定要在Python-3.6.6目录下安装!进入/opt目录查看python36文件夹,咱们要的python3都在这里了
3.2.5 更改linux的path变量,添加python3
echo $PASH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin vim ~/.bash_profile # 用户环境变量控制文件 vim /etc/profile # 系统环境变量控制文件 必定要将python3的目录放在第一位!!! 必定要将python3的目录放在第一位!!! 必定要将python3的目录放在第一位!!! 为了永久生效path设置,添加到/etc/profile全局环境变量配置文件中 vim /etc/profile 在最后一行加入: PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 重载配置文件/etc/profile source /etc/profile
3.2.6 剩下就须要装咱们一直在使用的django模块了
pip3 install -i https://pypi.douban.com/simple django==2.1.7 配置django,把django项目跑起来 (1) 建立一个django项目django-admin startproject qishi (2) 配置settings.py文件,将ALLOW_HOST=[]改成ALLOW_HOST=["*"] (3) 建立一个app python3 manage.py startapp app01 (4) 启动django python3 manage.py runserver 0.0.0.0:8000
在企业中一个服务器不可能只安装一个软件,对于企业来讲一台服务器须要跑多个业务,这个时候就须要用到虚拟机了,每一个虚拟机分别独立,安装不一样的环境和需求包。
(1)下载安装虚拟环境模块:pip3 install -i https://pypi.douban.com/simple virtualenv
(2) 切换到opt目录下,建立一个virutal_env目录:
(3) 建立俩个虚拟环境:
virtualenv --no-site-packages --python=python3 test1
virtualenv --no-site-packages --python=python3 test2
注:no-site-packages意味着虚拟环境为纯粹环境,只有最基本的俩个包,创建的虚拟环境就会在当前目录创建
(4)激活虚拟环境
1.相对路径 cd /opt/virutal_env/test1/bin source activate 2.绝对路径 source /opt/virtual_env/test2/bin/activate
激活后前置名称更改成虚拟环境的名称
激活的虚拟环境只有以上三个包
(5)分别在俩个虚拟环境中建立django项目
#1.分别进入两个虚拟环境,分别建立django项目,可是都在/opt/knight3目录下 进入test1虚拟环境下 source /opt/virtual_env/xiangge/bin/activate cd /opt/qishi3dj django-admin startproject qishi3_1 再进入test2虚拟环境下 source /opt/virtual_env/bangzheng/bin/activate cd /opt/qishi3dj django-admin startproject qishi3_2
启动虚拟机
启动后的页面,django1.x和2.x版本的
(6)退出虚拟环境:deactivate
virtualenv这个工具太麻烦了,命令太长, 不容易记住,管理虚拟环境特别麻烦, 容易弄错目录,容易找不到虚拟环境,最终致使得重装系统或者重装虚拟环境,如今就有一个能够统一管理的模块
(1)安装软件:virtualenvwrapper,必定要安装在python解释器目录下,不能安装在虚拟机上!
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
(2)设置linux的用户配置文件配置virtualenvwrapper
vim ~/.bashrc WORKON_HOME=~/Envs # 设置virtualenv的统一管理目录, 之后自动下载的虚拟环境,所有都放在这,这里能够更改目录 VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 添加virtualenvwrapper的参数,生成干净隔绝的环境 VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 # 指定python解释器的本体(注意此路径随不一样的linux环境改变而改变) source /opt/python34/bin/virtualenvwrapper.sh # 执行virtualenvwrapper安装脚本 注意: 后面的注释你得知道,可是不能放到配置文件里面去,否则会报错!!! 注意: 后面的注释你得知道,可是不能放到配置文件里面去,否则会报错!!! 注意: 后面的注释你得知道,可是不能放到配置文件里面去,否则会报错!!! 真实实验环境配置文件以下: 注:要根据实际的状况 WORKON_HOME=~/Envs VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 source /opt/python36/bin/virtualenvwrapper.sh
(3)从新加载~/.bashrc文件:source ~/.bashrc
(4) 登出用户,从新再登陆
(5)建立一个虚拟环境,建立成功自动进入虚拟机
mkvirtualenv test1
mkvirtualenv test2
mkvirtualenv test3
(6) 激活一个虚拟环境
workon test1
workon test2
workon test3
(7) 删除一个虚拟环境
rmvirtualenv test1
rmvirtualenv test2
rmvirtualenv test3
(8)退出一个虚拟环境
deactivate
因为官网的MariaDB版本要比阿里云的版本要高,因此咱们应该优先使用官方的版本
# 编辑建立mariadb.repo仓库文件 vi /etc/yum.repos.d/MariaDB.repo 2、添加repo仓库配置 [mariadb] name=MariaDB baseurl=http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
3、当 MariaDB 仓库地址添加好后,你能够经过下面的一行命令轻松安装 MariaDB。 yum install MariaDB-server MariaDB-client -y # 因为官方的下载网速太慢,咱们教学就使用阿里云低版本的mariadb数据库 # 删除或者重命名刚才建立的Mariadb.repo文件 cd /etc/yum.repos.d mv Mariadb.repo Mariadb.repo.bak # 而后一条命令安装Mariadb yum install mariadb-server mariadb -y
mariadb数据库的相关命令是: systemctl start mariadb #启动MariaDB systemctl stop mariadb #中止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动
启动后正常使用mysql:systemctl start mariadb
mysql_secure_installation
1 停掉mariadb服务
systemctl stop mariadb
2 修改配置文件vim /etc/my.cnf
进入mysql,基本配置结束,剩下就是SQL语句了!
Mariadb启动报错Job for mariadb.service failed because the control process exited...
MariaDB重启后,执行 systemctl start mariadb
启动报错
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
根据官方提示执行 systemctl status mariadb.service
或者 journalctl -xe
并不能看出真正缘由,此时能够查看mariadb的日志文件,查看错误缘由。
cd /var/log/mariadb/ vi mariadb.log #便可查看具体的错误信息!
a