開始今日份整理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