È»¶ø£¬ÔÙÇ¿´óµÄϵͳҲÄÑÃâÓöµ½¸÷ÖÖÎÊÌâºÍÌôÕ½£¬ÓÈÆäÊÇÔÚ´ó¹æÄ£²¿Êð»ò¸´ÔÓÈÎÎñÖ´ÐÐÖÐ
´Ëʱ£¬Linux½Å±¾¡ª¡ªÕâһǿ´óµÄ×Ô¶¯»¯¹¤¾ß£¬±ã³ÉΪÁËϵͳ¹ÜÀíÔ±ºÍ¿ª·¢ÕßÊÖÖеijýÕÏÀûÆ÷
±¾ÎĽ«ÉîÈë̽ÌÖLinux½Å±¾ÔÚ¹ÊÕÏÅųý¡¢ÏµÍ³ÓÅ»¯¡¢ÅúÁ¿²Ù×÷µÈ·½ÃæµÄÓ¦Óã¬Õ¹ÏÖÆäÎÞÓëÂױȵÄÓÅÊÆºÍ÷ÈÁ¦
Ò»¡¢Linux½Å±¾»ù´¡£º¹¹½¨×Ô¶¯»¯»ùʯ Linux½Å±¾£¬¼ò¶øÑÔÖ®£¬¾ÍÊÇһϵÁа´ÕÕÌØ¶¨Ë³ÐòÖ´ÐеÄÃüÁºÏ£¬Í¨³£Ê¹ÓÃShell£¨ÈçBash¡¢Zsh£©±àд
ÕâЩ½Å±¾¿ÉÒÔ´æ´¢ÔÚÎļþÖУ¬Í¨¹ýÃüÁîÐе÷ÓÃÖ´ÐУ¬ÊµÏÖ×Ô¶¯»¯²Ù×÷
½Å±¾µÄ±àд²»½öÒªÇóÕÆÎÕ»ù±¾µÄLinuxÃüÁ»¹ÐèÒªÀí½â½Å±¾ÓïÑԵĽṹ£¨Èç±äÁ¿¡¢Ìõ¼þÓï¾ä¡¢Ñ»·µÈ£©£¬ÒÔ¼°ÈçºÎÀûÓÃÎļþÖØ¶¨Ïò¡¢¹ÜµÀµÈ¸ß¼¶ÌØÐÔÀ´¹¹½¨¸´ÔÓµÄÂß¼Á÷³Ì
1. ½Å±¾µÄ±àдÓëÖ´ÐÐ ±àдһ¸ö¼òµ¥µÄLinux½Å±¾Í¨³£°üÀ¨ÒÔϼ¸¸ö²½Ö裺 - Ñ¡ÔñShell£ºÈ·¶¨Ê¹ÓÃÄÄÖÖShell»·¾³£¬BashÊÇ×î³£¼ûµÄÑ¡Ôñ
- ±àд½Å±¾£ºÊ¹ÓÃÎı¾±à¼Æ÷£¨Èçvim¡¢nano£©±àд½Å±¾ÄÚÈÝ£¬Í¨³£ÒÔ`.sh`×÷ΪÎļþÀ©Õ¹Ãû
- ¸³ÓèÖ´ÐÐȨÏÞ£ºÊ¹ÓÃ`chmod +x script.sh`ÃüÁîΪ½Å±¾ÎļþÌí¼ÓÖ´ÐÐȨÏÞ
- Ö´Ðнű¾£ºÍ¨¹ý./script.sh»ò`bash script.sh`ÃüÁîÔËÐнű¾
2. ½Å±¾µÄµ÷ÊÔÓë²âÊÔ ±àд½Å±¾ºó£¬µ÷ÊԺͲâÊÔÊÇÈ·±£Æä¹¦ÄÜÕýÈ·ÐԵĹؼü²½Öè
Õâ°üÀ¨£º - ÖðÐÐÖ´ÐУºÊ¹ÓÃset -xÃüÁÆôµ÷ÊÔģʽ£¬Ê¹½Å±¾ÔÚÖ´ÐÐʱÏÔʾÿÐÐÃüÁî¼°Æä²ÎÊý
- ´íÎó¼ì²é£ºÀûÓÃifÓï¾äºÍ$?±äÁ¿¼ì²éÃüÁîÖ´Ðеijɹ¦Óë·ñ£¬½øÐдíÎó´¦Àí
- ÈÕÖ¾¼Ç¼£º½«¹Ø¼ü²Ù×÷¡¢´íÎóÐÅÏ¢Êä³öµ½ÈÕÖ¾Îļþ£¬±ãÓÚºóÐø·ÖÎö
¶þ¡¢Linux½Å±¾ÔÚ¹ÊÕÏÅųýÖеÄÓ¦ÓÃ Ãæ¶Ô¸´ÔÓµÄϵͳ»·¾³£¬Linux½Å±¾Äܹ»ÏÔÖøÌáÉý¹ÊÕÏÅųýµÄЧÂÊ
1. ϵͳ½¡¿µ¼ì²é ͨ¹ý±àд½Å±¾£¬¶¨ÆÚ¼à¿ØÏµÍ³×ÊԴʹÓÃÇé¿ö£¨ÈçCPU¡¢ÄÚ´æ¡¢´ÅÅ̿ռ䣩¡¢·þÎñ״̬¡¢ÍøÂçÁ¬½ÓµÈ£¬¼°Ê±·¢ÏÖÒì³£
ÀýÈ磬һ¸ö¼òµ¥µÄ¼à¿Ø½Å±¾¿ÉÒÔ¶¨ÆÚ¼ì²é´ÅÅÌʹÓÃÂÊ£¬µ±³¬¹ýãÐֵʱ·¢Ë;¯±¨£º !/bin/bash THRESHOLD=80 DF_OUTPUT=$(df -h / | grep / |awk {print $5} | sed s/%//g) if ¡¾ $DF_OUTPUT -ge $THRESHOLD¡¿; then echo Disk usage is above threshold: $DF_OUTPUT% | mail -s Disk Usage Alert admin@example.com fi 2. ×Ô¶¯»¯ÈÕÖ¾·ÖÎö ÈÕÖ¾ÎļþÊÇϵͳÎÊÌâµÄ±¦¹óÏßË÷
ͨ¹ý½Å±¾£¬¿ÉÒÔ×Ô¶¯·ÖÎöÈÕÖ¾Îļþ£¬ÌáÈ¡¹Ø¼üÐÅÏ¢£¬ÉõÖÁ¸ù¾ÝÔ¤Éè¹æÔò´¥·¢ÏàÓ¦µÄÏìÓ¦´ëÊ©
ÀýÈ磬·ÖÎöApache·ÃÎÊÈÕÖ¾£¬ÕÒ³ö·ÃÎÊÁ¿Òì³£µÄIPµØÖ·£º !/bin/bash LOG_FILE=/var/log/apache2/access.log DATE=$(date -d yesterday +%Y-%m-%d) awk -v date=$DATE $4 ==date {print $1} $LOG_FILE | sort | uniq -c | sort -nr | head -n 10 | while read count ip; do if¡¾ $count -gt 1000¡¿; then echo Suspicious IP: $ip with $count hits on $DATE | mail -s Suspicious Activity Alert admin@example.com fi done 3. ÅúÁ¿ÐÞ¸´²Ù×÷ ÔÚÔâÓö´ó¹æÄ£ÏµÍ³ÎÊÌâʱ£¬ÈçȨÏÞ´íÎó¡¢ÅäÖÃÎļþ´íÎóµÈ£¬ÊÖ¶¯ÖðÒ»ÐÞ¸´Ð§ÂʵÍÏÂ
½Å±¾Äܹ»×Ô¶¯»¯ÕâÒ»¹ý³Ì£¬¿ìËÙ»Ö¸´ÏµÍ³×´Ì¬
ÀýÈ磬ÅúÁ¿ÐÞ¸ÄÎļþȨÏÞ£º !/bin/bash TARGET_DIR=/path/to/directory PERMISSION=755 find $TARGET_DIR -type d -exec chmod $PERMISSION {} ; find $TARGET_DIR -type f -exec chmod 644 {} ; Èý¡¢Linux½Å±¾ÔÚϵͳÓÅ»¯ÖеÄʵ¼ù ³ýÁ˹ÊÕÏÅųý£¬Linux½Å±¾ÔÚϵͳÓÅ»¯·½ÃæÒ²·¢»Ó×ÅÖØÒª×÷ÓÃ
1. ÐÔÄܵ÷ÓŠͨ¹ý½Å±¾×Ô¶¯µ÷Õûϵͳ²ÎÊý£¬ÈçÄں˲ÎÊý¡¢·þÎñÅäÖõȣ¬ÒÔ´ïµ½×î¼ÑÐÔÄÜ
ÀýÈ磬¸ù¾Ýϵͳ¸ºÔض¯Ì¬µ÷ÕûCPUƵÂÊ£º !/bin/bash LOAD_THRESHOLD=1.5 CPU_GOV=/sys/devices/system/cpu/cpu/cpufreq/scaling_governor load=$(uptime | awk -Fload average: { print $2 } | awk{ print $1}) if (($(echo $load > $LOAD_THRESHOLD |bc -l) )); then for gov in $CPU_GOV; do echo performance > $gov done else for gov in $CPU_GOV; do echo powersave > $gov done fi 2. ×Ô¶¯»¯±¸·ÝÓë»Ö¸´ ¶¨ÆÚ±¸·Ý¹Ø¼üÊý¾ÝÊDZ£ÕÏϵͳ°²È«µÄÖØÒªÊÖ¶Î
½Å±¾¿ÉÒÔ×Ô¶¯»¯ÕâÒ»¹ý³Ì£¬°üÀ¨Ñ¡Ôñ±¸·ÝÔ´¡¢Ä¿±ê´æ´¢¡¢Ö´ÐÐѹËõ¡¢Ð£Ñ鱸·ÝÍêÕûÐÔµÈ
ÀýÈ磬ʹÓÃrsync½øÐÐÎļþͬ²½±¸·Ý£º !/bin/bash SOURCE_DIR=/path/to/source BACKUP_DIR=/path/to/backup LOG_FILE=/var/log/backup.log rsync -av --delete $SOURCE_DIR/ $BACKUP_DIR/ if ¡¾ $? -eq 0 ¡¿; then echo$(date): Backup completed successfully. ] $LOG_FILE else echo$(date): Backup failed. ] $LOG_FILE fi 3. ×ÊÔ´¹ÜÀí Linux½Å±¾»¹ÄܰïÖú¹ÜÀíϵͳ×ÊÔ´£¬Èç×Ô¶¯ÇåÀíÁÙʱÎļþ¡¢ÓÅ»¯ÄÚ´æÊ¹ÓõÈ
ÀýÈ磬ÿÌ춨ʱÇåÀí`/tmp`Ŀ¼ÏµľÉÎļþ£º !/bin/bash FIND_CMD=find /tmp -type f -mtime +7 -exec rm -f{} ; LOG_FILE=/var/log/cleanup.log eval $FIND_CMD if ¡¾ $? -eq 0 ¡¿; then echo$(date): Temporary files older than 7 days have been removed. ] $LOG_FILE else echo$(date): Failed to remove temporary files. ] $LOG_FILE fi ËÄ¡¢½áÓï Linux½Å±¾ÒÔÆäÁé»îÐÔÇ¿¡¢Ò×À©Õ¹µÄÌØµã£¬³ÉΪÁËϵͳ¹ÜÀíÔ±ºÍ¿ª·¢ÕßÊÖÖеÄÇ¿´ó¹¤¾ß
ÎÞÂÛÊǹÊÕÏÅųý¡¢ÏµÍ³ÓÅ»¯£¬»¹ÊÇÈÕ³£ÔËά£¬½Å±¾¶¼ÄÜÏÔÖø