<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                > 更多常用命令可參考 > https://tool.lu/command/ [TOC] ### 學會查看幫助文檔 man ``` man ln ``` ### centos 常用目錄 > **/usr/bin/** 存放系統預裝的可執行程序。系統升級后,如果重名會被覆蓋掉。 > **/usr/local/bin/** 存放自己的可執行程序的地方,系統升級,不會被覆蓋,并且local的優先級高于前者。 > 很多源碼安裝的程序,就需要把執行程序放入該目錄 **/usr/bin/** 或 **/usr/local/bin/** > **/usr/local/** 或 **/opt/** :用戶下載的軟件存放的地方,我比較喜歡使用 **/opt/** ### 源碼安裝步驟 #### 1. 執行configure,生成Makefile文件 ``` ./configure --prefix=/opt/nginx/ ``` > 此時當前目錄下將會生成一個Makefile文件。 > * 注意:--prefix參數指定軟件安裝目錄。當執行make install命令時,會將軟件安裝在此路徑中。 #### 2. 執行make,從Makefile中讀取指令,編譯源碼 ``` make clean; make ``` > 此時make會讀取Makefile文件,將源碼編譯成二進制文件,并存放在當前目錄下。 #### 3. 執行make install,將軟件安裝至指定目錄 ``` make install ``` > 此時二進制文件會被安裝到先前configure prefix參數設置的路徑中去。至此安裝完成! ### PHPIZE安裝 ~~~ phpize # 生成配置文件 ./configure --with-php-config=/my_php_path/bin/php-config # 配置 make && make install # 編譯和安裝 ~~~ ### linux 符號 #### 后臺執行符號 (&) > 表示任務在后臺執行 > vim cron.sh > 表示該shell再同時間啟動兩個后臺進程,該shell可以防止到crontab里進行每分鐘調用 ~~~ #!/bin/sh /usr/bin/php /var/www/html/yii2/yii task/todo1 & /usr/bin/php /var/www/html/yii2/yii task/todo2 & ~~~ #### 命令控制符 (&&) > 格式:command1 && command2 > 如果command1執行成功,才會執行command2 #### 管道 ( | ) > 上一條命令的輸出,作為下一條命令參數 ~~~ echo 'yes' | wc -l ~~~ ### vim 使用技巧 > 命令模式下 ``` gg # 跳自第一行 G #跳自末尾 dd # 刪除當前行 D # 刪除光標至行尾 ggdG #刪除全部 :set nu # 顯示行號 : number #跳轉行號 ``` > /usr/bin/php ### 使用RZ 或 SZ ``` yum install -y lrzsz sz #Shell中 下載服務器的文件至本地 rz #Shell中 上傳文件至服務器 ``` ### 使用htop > 安裝方式 ~~~ yum install htop ~~~ > 使用教程 > 待續中 ### 查看某個命令的路徑 ``` which php ``` > /usr/bin/php ### 設置開機啟動 ~~~ chkconfig mysqld on #設置mysql進程開機啟動 chkconfig iptables off #設置防火墻開機不啟動,因為iptables禁用了80端口。 chkconfig -–list # 查看所有的開機啟動情況 chkconfig -–list httpd #查看Apache的開機啟動情況 # 如下場景,源碼方式安裝mysql,設置mysqld命令自啟動。 cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld chmod 777 /etc/init.d/mysqld chkconfig mysqld on ~~~ ### 用戶組操作 ~~~ groupadd mysql # 添加mysql組 useradd -r -g mysql mysql #添加mysql用戶到mysql組 groups mysql #查看mysql用戶屬于哪個組 chown -R www:www /opt/nginx/ #修改文件所屬用戶 ~~~ ### 文件權限操作 ~~~ chown -R www:www folder2 #folder2文件夾遞歸修改用戶擁有組和組 chmod -R 777 folder2 # folder2文件夾遞歸修改為777權限,7 =4(讀)+2(寫)+1(執行) ll #查看文件權限 #-rwxr-xr-x 1 root root 2405 Jun 5 2017 php-fpm-71 #前10個字母中第一個字母,代表類型“-(文件) / d(文件夾)” #第一組字母 rwx 所有者(user)權限 (讀 & 寫 & 執行) #第二組字母 r-x 組群(group)權限 (讀 & 不可寫 & 執行) #第三組字母 r-x 其他人(other)權限 (讀 & 不可寫 & 執行) ~~~ ### 查找是否安裝某個軟件 > 一般centos會自帶apache,這個時候需要先刪除再安裝自己的版本 ~~~ rpm -qa | grep http* #RPM下查找是否安裝Apache yum list installed | grep http* #YUM下查找是否安裝Apache ~~~ ### 軟連接 ln -s ~~~ ln -s /var/www.zhuifanba.com/ new_symbolic # ln -s 源文件夾 目標文件夾 ~~~ ### 根據文件名查找 ~~~ find /home/wangkun/ -name robots.txt #根據《文件名》進行查找 find /home/wangkun/ -name '*rob*' #文件名模糊查找 ~~~ ### 文件內容的查看 ~~~ tail -n 500 app.log #查看前500行的內容 tail -n 500 app.log | grep Baiduspider cat app.log | grep Baiduspider #雷同以上 tail -n 500 app.log > 1.log tail -f xx.log #實時查看文件動態變化 #要查找某個東西,也可以用vim,在命令格式里輸入“/”,然后輸入“apply”,就可以查找到了,查看下一個,用N即可。 ~~~ ### 壓縮命名 ~~~ tar zcvf filename.tar.gz dirname #壓縮 tar zxvf filename.tar.gz #解壓 tar zxvf filename.tar.gz -C haha/ #解壓到haha目錄 ~~~ ### 下載文件 ~~~ wget http://nginx.org/download/nginx-1.10.3.tar.gz #下載到當前文件夾 wget -O php-7.1.2.tar.gz http://cn2.php.net/get/php-7.1.2.tar.gz/from/this/mirror #下載文件后,重命名為“php-7.1.2.tar.gz” ~~~ ### 刪除當前文件夾下的所有文件 ~~~ rm -rf * ~~~ ### 查看linux 內核版本 > 當使用uname -a查看時,如果有x86_64則為64位,否則為32位 ~~~ uname -a #在版本信息中可得知是32位還是64位 > Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux cat /etc/redhat-release #查看centos版本 > CentOS Linux release 7.3.1611 (Core) ~~~ ### awk的用法 > awk '{動作}' > awk -F '分割符' '{動作}' > 日志內容 ``` 223.104.108.11 - - [03/Nov/2019:22:53:08 +0800] "POST /api/sign/get-sign-award HTTP/2.0" 200 64 "-" "fan bei/1.1.6 (iPhone; iOS 11.2.6; Scale/2.00)" 223.104.108.11 - - [03/Nov/2019:22:53:08 +0800] "POST /api/sign/index HTTP/2.0" 200 3954 "-" "fan bei/1.1.6 (iPhone; iOS 11.2.6; Scale/2.00)" ``` > 測試 ``` cat haha.txt| awk -F ':' '{print $1}' ``` ### NGINX日志分析 > 日志內容 ``` 223.104.108.11 - - [03/Nov/2019:22:53:08 +0800] "POST /api/sign/get-sign-award HTTP/2.0" 200 64 "-" "fan bei/1.1.6 (iPhone; iOS 11.2.6; Scale/2.00)" 223.104.108.11 - - [03/Nov/2019:22:53:08 +0800] "POST /api/sign/index HTTP/2.0" 200 3954 "-" "fan bei/1.1.6 (iPhone; iOS 11.2.6; Scale/2.00)" ``` > https://blog.csdn.net/lupeng0206/article/details/59105790 > 批注: 如果要統計實時的,可以先將tail -f 的內容輸入到haha.txt文檔里,然后再對haha.txt進行統計 ``` tail -f access.log >> haha.txt ``` > 1. 統計qps > awk -F 指定分割字符串(不帶默認為空格),獲得最終的訪問時間,然后再進行uniq合并計數 ``` cat haha.txt |awk -F ' ' '{print $4}'|uniq -c|sort -k1nr|more ``` > 2. 查詢訪問最頻繁的URL ``` cat haha.txt |awk '{print $7}' |sort | uniq -c |sort -k1nr|more ``` > 3. 查詢訪問最頻繁的IP ~~~ cat haha.txt |awk '{print $1}' |sort | uniq -c |sort -k1nr|more ~~~ > 4. 根據時間段統計查看日志 ~~~ cat access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more ~~~ > 6. 根據某接口的統計 ~~~ cat haha.txt|grep 'demo.php' ~~~ ### 日志分析 > 更多參考:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html ~~~ grep -r "phpfpm_71_status" /www/server/ # 查找某個目錄下包含“xx關鍵詞” grep 'Baiduspider' * # 當前文件夾下的所有文件,含有“Baiduspider”的打印出來 grep 'Baiduspider' -r -c -i # ( -r 當前文件夾下進行遞歸) ( -c 顯示總共有多少行被匹配到了) (-i 忽略大小寫) cat www.zhuifan8.com.log | grep 'Baiduspider' # 該文件含有“Baiduspider”的打印出來 cat haha.log | grep 'Baiduspider' -c # 統計haha.log里含有多少個“Baiduspider”訪問記錄 cat haha.log | grep 'Baiduspider' | wc -l #同上,使用的是wc命令進行行數的統計 cat www.zhuifan8.com.log |grep 'Baiduspider' | grep '24/Aug' #既統計"Baiduspider"又統計“日期(24號)”的數據 cat www.zhuifan8.com.log |grep 'Baiduspider' | head -n 10 # 讀取"Baiduspider"訪問記錄的前10條。最后10條,可使用 tail -n 10 cat www.zhuifan8.com.log |grep 'Baiduspider'|awk '{print $7}'|sort|uniq -c|sort -r #統計被百度訪問次數訪問的頁面記錄 cat www.zhuifan8.com.log |grep 'Baiduspider'|awk '{print $7}'|sort|uniq -c|sort -r|awk '$1>100{print $1,$2}' #統計訪問次數超過100的頁面記錄 ~~~ ### 磁盤情況查看 (磁盤空間不足排查) [概要查詢] > -h :√ human-readable 人類可閱讀 > -s :√ summarize 只顯示一條總和數據:所有文件夾的大小總和,默認情況下,是遞歸顯示所有文件夾的數據大小。 ~~~ df -h #disk free,查看整體磁盤空間大小情況 du -sh /* # disk useage先查看根目錄下,所有文件夾占用情況 du -sh /usr/* # 當發現usr占用比較大,就查看其下面的占用情況 du -sh /usr/local/* # ....以此類推 ~~~ ### top命令 [細節查詢] > top摘要可以看CPU的情況以及問題所在(如是IO問題,還是系統CPU資源短缺),以及內存概況。 > 按 1:則顯示具體的幾核cpu使用情況 > 按 P:按CPU使用率進行排序 > 按 M:按內存使用率進行排序 ~~~ top top -d 0.5 # 將以0.5秒的時間間隔刷新數據 top -u www #查看www用戶的進程情況 ~~~ > **摘要詳解** > us:(user cpu time) 用戶模式消耗的 CPU 時間百分比。該值較高時,說明用戶進程消耗的 CPU 時間比較多,比如,如果該值長期超過 50%,則需要對程序算法或代碼等進行優化。 > sy:(system cpu time) 內核模式消耗的 CPU 時間百分比。 > wa:(io wait cpu time) IO 等待消耗的 CPU 時間百分比。該值較高時,說明 IO 等待比較嚴重,這可能磁盤大量作隨機訪問造成的,也可能是磁盤性能出現了瓶頸。 > id:(idle cpu time) 處于空閑狀態的 CPU 時間百分比。如果該值持續為 0,同時 sy 是 us 的兩倍,則通常說明系統則面臨著 CPU 資源的短缺。 > **操作命令** > **A)** 按 1,監控每個cpu的各自占用情況 > **A)** 按大寫 P,監控結果按 CPU 倒序 > **A)** 按大寫 M,監控結果按 MEM 倒序 > **A)** ↑↑↑ 找占用內存或CPU過高的進程,根據對應系統日志和程序自身相關日志,做進一步排查分析,以判斷其占用過高的原因 > **B)** 輸入小寫 k,再輸入pid,再回車確認,即可快速終止的對應pid進程 > **C)** load average 是對 CPU 負載的評估,其值越高,說明其任務隊列越長,處于等待執行的任務越多。 出現此種情況時,可能是由于僵死進程導致的。可以通過指令 ps -aux 查看是否存在 D 狀態進程。D 狀態是指不可中斷的睡眠狀態。該狀態的進程無法被 kill,也無法自行退出。只能通過恢復其依賴的資源或者重啟系統來解決。重啟系統后,再去排查問題所在 https://blog.csdn.net/m0_37886429/article/details/78529681 ### ps命令 [細節查詢] > 查詢出來的結果集參數詳解: > PID:進程ID > %CPU:占用CPU百分比 > %MEM:占用內存百分比 > RSS:占用物理內存大小 (以這個為主,單位kb) > VSZ:占用虛擬內存大小 (單位kb) > STAT:進程狀態 (D 不可中斷 usually IO / R 正在運行,或在隊列中的進程 / S 處于休眠狀態),這個狀態同樣適用于top里的s狀態 ~~~ ps aux | grep nginx #查找nginx的進程情況 (可查看nginx的worker進程數,以及對應占用的CPU和內存情況) ps aux | grep php-fpm #查找fpm的進程情況 (可查看fpm進程數,以及對應占用的CPU和內存情況) ps aux | grep mysql #查找mysql的進程情況 (可查看mysql占用的CPU和內存情況) ps aux | grep php-fpm | grep -v grep | grep -v master | awk '{sum+=$6} END {print sum}' #php-fpm內存占用量 ps aux | sort -rn -k3 | head -n 10 #查看CPU占用最大的前10條數據 ps aux | sort -rn -k4 | head -n 10 #查看內存占用最大的前10條數據 ps 2881 #查看pid為2881的ps詳情 ~~~ > 找到了問題的pid,即可進行強制關閉 > 有時候找出的問題進程是多個,就需要批量殺進程。可自行百度。 ~~~ ps 2881 kill -9 2881 #關閉php-fpm,2881為pid ~~~ ### netstat管理 [細節查詢] > 用來打印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況 ~~~ netstat -anltp |grep :80 #假設(PID)為2881 ~~~ > netstat找出DDOS攻擊并防御 ~~~ netstat -anltp | grep ":80" | grep ESTABLISHED #找出最多鏈接的IP iptables -A INPUT -s 221.238.196.83 -p tcp -j DROP #防火墻拒絕該IP ~~~ > 洪水攻擊的防范 ?? ### ddos / cc攻擊防范 ~~~ top #1. 先看CPU以及內存情況,按P或M進行排序,如果占用高的進程是nginx tail -f access.log #2. 實時查看是不是有人在ddos ~~~ ### PING測試網絡 ~~~ yum install iputils ping www.99liwu.com ping www.99liwu.com -t ~~~ ### Crontab ~~~ vim /etc/crontab #編輯crontab文件 service crond status #查看crontab服務狀態 service crond start / stop / restart #手動操作crontab服務 chkconfig -–list crond #查看crontab的開機啟動情況 tail -f /var/log/cron # 查看日志 基本格式 : * *  *  *  *  command 分 時  日  月 周  命令 第1列表示分鐘1~59 每分鐘用*或者 */1表示 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要運行的命令 crontab文件的一些例子: 30 1 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的1:30重啟apache。 0 */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小時重啟apache */1 * * * * /usr/local/etc/rc.d/lighttpd restart 每分鐘重啟apache */30 * * * * /usr/sbin/ntpdate 210.72.145.44 每半小時同步一下時間 ~~~ 繼續參考: http://www.njxblog.com/2016/03/linux-shell%E5%8F%8A%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E7%AE%80%E4%BB%8B/
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看