User Tools

Site Tools


qnote:bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
qnote:bash [2017/08/01 23:48] kqnote:bash [2022/08/10 14:44] (current) – [Записать результат mtr-теста в файл] k
Line 397: Line 397:
         echo "tx $1: $TKBPS kb/s rx $1: $RKBPS kb/s"         echo "tx $1: $TKBPS kb/s rx $1: $RKBPS kb/s"
 done done
-<code>+</code>
  
  
Line 572: Line 572:
 fi fi
 </code> </code>
 +
 +Скрипт bash tar-backup-netflow-data-via-ssh.sh позволяет сразу скопировать архив на удаленный сервер по ssh. \\
 +Это полезно когда на локальном сервере мало место и некуда записать архив. \\ 
 +Перед запуском скрипта на 1.2.3.4 надо скопиловать ssh ключ3, что бы заходить под пользователем username без пароля.
 +
 +<code bash tar-backup-netflow-data-via-ssh.sh>
 +#!/bin/bash
 +
 +# Задаем базовые и стартовые значения переменных.
 +BASE_NFSEN_BACKUP_DATA_DIR=/data/nfsen_1_3_8_bup/profiles-data/live
 +BASE_TAR_DIR=/backup/nfsen_bup
 +ROUTER=START-ROUTER
 +YEAR=START-YEAR
 +MONTH=START-MONTH
 +
 +# Выводим имена директорий в виде списка которые будут использоваться в цикле архивирования всех месяцев (MONTH=ALL) 
 +LIST_ONLY_FOLDER_NAME () {
 +find $BASE_NFSEN_BACKUP_DATA_DIR/$ROUTER/$YEAR -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
 +}
 +
 +# Формируем справку.
 +SHOW_HELP () {
 +  echo "Скрипт $0 предназначен для архивирования netflow данных которые были скописрованы с сервера flow1."
 +  echo "Данные сворачиваются в архив вида nfcapd-ciso1-201702.tar.bz2."
 +  echo "Скрипту обзательно надо дать три ключа: \"-r\", \"-y\", \"-m\"."
 +  echo "Ключ \"-r\" задает роутер, данные которого будут архивироваться."
 +  echo "Ключ \"-y\" указывает на год за который надо будет брать данные."
 +  echo "Ключ \"-m\" указывает на месяц за который надо брать данне для добавления в архив."
 +  echo "Ключ \"-m\" может иметь два значния - конкретный номер месяца (01, 02 и так до 12) или ALL (будут перебираться все месяцы в выбранном годе)."
 +  echo "Пример: \"$0 -r cisco6 -y 2015 -m {03|ALL}\"."
 +}
 +
 +# Проверям наличие аргументов у скрипта.                  
 +if [ $# -eq "0" ];  # Количество переданных скрипту агрументов ($#) равно нулю (значение NO_ARGS)?
 +then
 +   echo "!!!"
 +   echo "Ошибка: Скрипт запускается без ключей и аргументов."
 +   echo "!!!"
 +   SHOW_HELP       # Если да, то показать справку
 +   exit        # и выйти 
 +fi
 +
 +#Работа с ключами. 
 +while  getopts "r:y:m:" option # Определяем ключи и говорим, что после ключа обязательно должен быть аргумент.
 +do
 +  case $option in
 +    r) ROUTER=$OPTARG;; # Присваеваем переменной значение аргумента
 +    y) YEAR=$OPTARG;;
 +    m) MONTH=$OPTARG;;
 +    *) echo "Выбран недопустимый ключ." # Если введен ключ который мы ранее не определили, то выводим сообщение
 +    exit;; # и выходим
 +  esac
 +done
 +
 +
 +
 +# Проверяем, что скрипту были переданы три ключа с аргументами. 
 +# Если значение переменной совпадает со стартовым значением, значит ключ не был задан. 
 +if [ "$ROUTER" = "START-ROUTER" ]; 
 +then
 + echo "!!!"
 + echo "Ошибка: Не задан ключ \"-r\"."
 + echo "!!!"
 + SHOW_HELP
 + exit
 +elif [ "$YEAR" = "START-YEAR" ];
 +then
 + echo "!!!"
 + echo "Ошибка: Не задан ключ \"-y\"."
 + echo "!!!"
 + SHOW_HELP
 + exit  
 +elif [ "$MONTH" = "START-MONTH" ];
 +then
 + echo "!!!"
 + echo "Ошибка: Не задан ключ \"-m\"."
 + echo "!!!"
 + SHOW_HELP
 + exit
 +elif [ "$MONTH" = "ALL" ]; # Запускаем цикл если с ключем было передано ALL.
 +# Будет создано столько архивов, сколько месячных папок выдаст команда LIST_ONLY_FOLDER_NAME.
 +then 
 + for MONTH in `LIST_ONLY_FOLDER_NAME`
 + do
 + tar -cjvf - -C $BASE_NFSEN_BACKUP_DATA_DIR $ROUTER/$YEAR/$MONTH | ssh root@1.2.3.4 "cat > $BASE_TAR_DIR/nfcapd-$ROUTER-$YEAR$MONTH.tar.bz2"
 + done
 +else # Если с ключем -m был передан конкретный номер месяца, то делаем один архив. 
 + tar -cjvf - -C $BASE_NFSEN_BACKUP_DATA_DIR $ROUTER/$YEAR/$MONTH | ssh username@1.2.3.4 "cat > $BASE_TAR_DIR/nfcapd-$ROUTER-$YEAR$MONTH.tar.bz2"
 +fi
 +</code>
 +
 +
  
 ---- ----
Line 613: Line 705:
 # #
 mailx -r root@${serv_name} -s "Exim stats for ${date_minus_1day} from ${serv_name_short}" a@b.com < ${log_file} mailx -r root@${serv_name} -s "Exim stats for ${date_minus_1day} from ${serv_name_short}" a@b.com < ${log_file}
 +</code>
 +
 +----
 +
 +==== Переместить логи nginx старше 2 дней и удалить логи старше 60 дней ====
 +
 +<code bash move_and_delete_old_nginx_logs.sh>
 +#!/bin/bash
 +
 +find /var/log/nginx/ -maxdepth 0 -type f -mtime +2 -exec mv '{}' /var/log/nginx/1_archive_nginx_logs/ \;
 +find /var/log/nginx/1_archive_nginx_logs/ -type f -mtime +60 -delete
 </code> </code>
  
Line 645: Line 748:
 host $url | head -n 1 host $url | head -n 1
 host www.$url | head -n 1 host www.$url | head -n 1
 +</code>
 +
 +----
 +
 +==== Записать результат mtr-теста в файл ====
 +
 +**Версия для Cenots6**
 +<code bash mtr_test.sh>
 +#!/bin/bash
 +
 +log_file="/var/log/obkt/mtr/mtr_xxx_$1.log"
 +
 +echo "#####################" >> $log_file
 +echo -e "Start time: $(date +"%Y%m%d - %H:%M:%S")" >> $log_file 
 +echo -e "Test address: $1\n" >> $log_file 
 +
 +mtr -o LSR -4 -r -n -c $2 $1 >> $log_file
 +
 +echo -e "\nStop time: $(date +"%Y%m%d - %H:%M:%S")" >> $log_file 
 +echo -e "#####################\n" >> $log_file
 +
 +</code>
 +
 +Результат работы:
 +<code>
 +#####################
 +Start time: 20220810 - 00:41:09
 +Test address: 77.233.186.43
 +
 +HOST: xxx.xxx.pro         Loss%   Snt   Rcv   Avg  Best  Wrst StDev
 +  1. 172.20.1.2                   83.3%   300    50   0.2   0.1   0.5   0.1
 +  2. ???                          100.0   300       0.0   0.0   0.0   0.0
 +  3. 87.245.233.89                 0.0%   300   300  10.1   1.1  51.5   9.1
 +  4. 87.245.229.187                0.0%   300   300   2.4   2.2   2.9   0.2
 +  5. ???                          100.0   300       0.0   0.0   0.0   0.0
 +  6. 188.170.165.123               0.0%   300   300  31.9  31.7  34.4   0.2
 +  7. 86.109.222.224                0.0%   300   300  31.3  30.7 138.0   6.7
 +  8. 77.233.186.43                 0.0%   300   300  40.5  37.3  46.7   1.6
 +
 +Stop time: 20220810 - 00:46:09
 +#####################
 +</code>
 +
 +**Версия для Cenots7/Debian11/Ubuntu**
 +<code bash mtr_test.sh>
 +#!/bin/bash
 +
 +log_file="/var/log/obkt/mtr/mtr_noc19_$1.log"
 +
 +echo "#####################" >> $log_file
 +echo -e "Start time: $(date +"%Y%m%d - %H:%M:%S")" >> $log_file 
 +echo -e "Test address: $1\n" >> $log_file 
 +
 +mtr -z -o LSR -b -w -c $2 $1 >> $log_file
 +
 +echo -e "\nStop time: $(date +"%Y%m%d - %H:%M:%S")" >> $log_file 
 +echo -e "#####################\n" >> $log_file
 +</code>
 +
 +Результат работы:
 +
 +<code>
 +#####################
 +Start time: 20220810 - 03:51:17
 +Test address: 109.73.46.180
 +
 +Start: Wed Aug 10 03:51:17 2022
 +HOST: noc19                                                            Loss%   Snt   Rcv   Avg  Best  Wrst StDev
 +  1. AS49505 84.38.180.253                                              0.0%   300   300   7.5   0.4 135.8  13.8
 +  2. AS49505 92.53.93.89                                                0.0%   300   300   7.5   1.0 159.9  15.1
 +  3. AS29076 ae0-3002.rt2.spb.cloud-ix.net (31.28.18.102)               0.0%   300   300   6.4   0.9 149.5  14.5
 +  4. AS???   ???                                                       100.0   300       0.0   0.0   0.0   0.0
 +  5. AS29076 mastertel.msk.cloud-ix.net (31.28.19.122)                  0.0%   300   300  15.4   9.9 168.5  16.2
 +  6. AS29226 217-67-176-250.in-addr.mastertelecom.ru (217.67.176.250)   0.0%   300   300  33.4  11.6 446.6  40.8
 +  7. AS29226 109-73-46-177.in-addr.mastertelecom.ru (109.73.46.177)     0.0%   300   300  20.7  12.2 174.5  19.2
 +  8. AS29226 mail.frecom.ru (109.73.46.180)                             0.0%   300   300  16.4  11.6 169.2  12.4
 +
 +Stop time: 20220810 - 03:56:27
 +#####################
 </code> </code>
qnote/bash.1501620516.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki