日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

从工作实践中积累Linux常用脚本(一)

發布時間:2024/1/23 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从工作实践中积累Linux常用脚本(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:

最近工作幾乎滿負荷,業余時間思考和閱讀非專業書籍的時間很少,有空的話,也是在加強本專業的知識。

在工作范圍內,用到比較多的是shell相關的工具,怕時間久了就忘記了,那索性就記下來吧。

俗話說得好,好記性不如爛筆頭,

首先,我假設你是有一些shell1基礎的,如果沒有,其實也沒關系,我猜你能看懂。

約定:shell 腳本的書寫,腳本開頭,我們遵守如下規則:

#!/bin/bash # Author: soyoger # Description: shell學習筆記 # Created: 2021-12-11 # Modified:2021-12-11 echo $(date) the task is started. #核心腳本 echo $(date) the task is finished.

那,現在就開始shell這一場記錄之旅吧!

  • 從日志中過濾error、fatal等信息
  • # 查看錯誤信息 -i 忽略大小寫 grep -i ERROR error.log # 查看錯誤信息,統計條數 grep -i ERROR error.log | wc -l
  • 檢查服務的健康情況
  • # ping機器 -c1 1次 ping -c1 192.168.1.2 if [ $? -eq 0 ];then echo ok else echo not ok fi# ping機器,打印的信息丟入黑洞 ping -c1 192.168.1.2 >& /dev/null if [ $? -eq 0 ];then echo ok else echo not ok fi# ping機器,通過變量,打印的信息丟入黑洞 hosts="192.168.1.1" ping -c1 $hosts >& /dev/null if [ $? -eq 0 ];then echo ok else echo not ok fi# 通過文件,ping多臺機器,打印的信息丟入黑洞 hosts_file="/home/soyoger/ip_list" for ip in $(cat hosts_file) doping -c1 $ip >& /dev/nullif [ $? -eq 0 ];then echo $ip is passed. else echo $ip is faild.fi done
  • 刪除舊文件
  • # 從logs目錄下,查找超過90天的文件,并列出來 find /home/soyoger/logs -type f -mtime +90 -exec ls {} \; # 從logs目錄下,查找超過90天的文件,并刪除 find /home/soyoger/logs -type f -mtime +90 -exec rm {} \; # 從logs目錄下,查找超過90天的文件,重命名 find /home/soyoger/logs -type f -mtime +90 -exec mv {} {}.old \;
  • 備份文件和目錄
  • # 壓縮備份目錄 tar cvf log_bak.rar ./log gzip log_bak.rar
  • 循環多文件操作
  • # for loop for i in {1..20} do echo $i done# for loop,創建多個文件 for i in {1..20} do touch test.$i done# for loop,創建多個文件 echo "please input num your want to create?" read num for i in $(seq 1 $num) do touch test.$i done# 判斷文件是否存在 for file_name in *.txt do if [ ! -e $file_name ]; thenecho "$file_name is not exist."elsemv $file_name ${file_name}.bakfi done
  • 遠程拷貝文件
  • scp some_files user@host:/tmp
  • 用戶home檢查
  • # 檢查一個用戶是否已經創建 cd /home for dir in * dois_exist=$(grep -c "/home/${dir}" /etc/passwd)if [ $is_exist -ge 1 ];thenecho $dir user is already existed.elseecho $dir user is not exist.fi
  • 監控日志
  • tail -fn0 /var/log/message | while read line doecho $line | egrep -i "error|faild|shut|down"if [ $? -eq 0 ];thenecho $line >> /tmp/error.logfi done
  • 自動化創建用戶
  • # 創建新用戶 echo "please input the new user name:" read name dois_exist=$(grep -c "/home/${name}" /etc/passwd)if [ $is_exist -ge 1 ];thenecho ${name} user is already existed.elseecho ${name} user is not exist.# 如果用戶不存在,創建用戶echo start create the user: ${name}useradd -s /bin/bash -d /home/${name} -m ${name}if [ $? -eq 0 ]; thenecho ${name} created success.elseecho ${name} created faild.fiecho ${name} user has been created.fiecho "please set password by: passwd ${name}" done # 在刪除用戶的同時刪除用戶的家目錄。 # userdel -r ${name}
  • 檢查進程并kill
  • # 檢查pid,并kill ps -ef | grep xxx | grep -v grep |awk '{print $2}' | xargs -I{} kill {}
  • 服務器系統初始化配置
  • # 設置時區 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 同步aliyun時區 ntpdate ntp1.aliyun.com # 禁用selinux # 待查 # 關閉防火墻 # 待查,根據自己操作系統設置 # 歷史命令顯示操作時間 if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi # SSH超時時間 if ! grep "TMOUT=600" /etc/profile &> /dev/null;thenecho "TMOUT=600" >> /etc/profile fi # 禁止root遠程登錄 sed -i 's/#PermitRootLogin yes/PerimitRootLogin no/' /etc/ssh/sshd_config # 減少SWAP使用 echo "0" > /proc/sys/vm/swappiness # 安裝系統分析工具 # centos yum install gcc make autoconf vim sysstat net-tools iostat iftop iotp lrzsz -y # ubuntu apt-get update; apt-get install gcc make sysstat net-tools iostat iftop iotp lrzsz
  • Linux系統發送告警郵件
  • # 發送告警郵件 # 安裝mailx工具 /etc/mail.rc
  • 批量創建100個用戶并設置密碼
  • # echo $RANDOM | md5sum | cut -c 1-8 # 創建新用戶 echo "please input the new user name:" read name dois_exist=$(grep -c "/home/${name}" /etc/passwd)if [ $is_exist -ge 1 ];thenecho ${name} user is already existed.elseecho ${name} user is not exist.# 如果用戶不存在,創建用戶echo start create the user: ${name}useradd -s /bin/bash -d /home/${name} -m ${name}if [ $? -eq 0 ]; thenecho ${name} created success.#pwd=$(echo $RANDOM | md5 | cut -c 1-8)pwd=$(echo $RANDOM | md5sum | cut -c 1-8)echo ${pwd} | passwd --stdin ${name}echo "${name} ${pwd}" >> user_list.txtelseecho ${name} created faild.fiecho ${name} user has been created.fi done
  • 一鍵查看服務器資源利用率
  • # cpu 60% # vmstat | awk '{print $13}' # vmstat | awk '{print $13+$14}' # vmstat | awk '{if(NR==3)print $13}' function cup(){util=$(vmstat | awk '{if(NR==3)print $13+$14}')iowait=$(vmstat | awk '{if(NR==3)print $16}')echo "CPU-使用率:${util}%,等待磁盤IO相應使用率:${iostat}%." } # 內存利用率 function memory(){total=$(free -m | awk 'if(NR==2) print "%.1f", $2/1024')used=$(free -m | awk 'if(NR==2) print "%.1f", ($2-$NF)/1024')avaliable=$(free -m | awk 'if(NR==2) print "%.1f", $NF/1024')echo "MEMORY-總大小:${total}, 已使用:${used}, 剩余:${avaliable}." } # 硬盤利用率# TCP鏈接狀態 cpu memory

    參考資料:

    • https://www.bilibili.com/video/BV17Q4y1i7oD
    • https://www.bilibili.com/video/BV1k7411r71C
    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的从工作实践中积累Linux常用脚本(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。