Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Скрипты для Centos 7

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

riazmey



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Решил здесь выкладывать свои скрипты. Может кому-то понадобятся.
Если кто-то решит выложить свои пожалуйста, пишите.
В результате хочу сделать топик в котором будут скрипты для новоиспеченного админа на linux.
Также задавайте вопросы по скриптам, если смогу - отвечу.
 


Процедура ftp-send-file() - отправка файла на ftp ресурс (каталоги на ftp ресурсу автоматически создаются как на хосте)
Пример записи в /etc/crontab */1 *  *  *  *    root   . /opt/scripts/functions.sh; ftp-send-file /backups/share-files/ /backups/share-files/share-00-00-00.tar.gz

Код:
ftp-send-file(){
  FTPD="$1" #директория внутри FTP (в конце без слеша)
  FTPU="UserName" #имя пользователя
  FTPP="PAROl" #пароль
  FTPS="www.my.server.ru" #сервер FTP
  CURL="$(which curl)"
   
  # Убираем из пути первый символ / если он есть
  FTPD_first_symb="$(echo $FTPD | sed 's/^\(.\).*/\1/')"
  if [ "$FTPD_first_symb" == "/" ]; then
    FTPD="$(echo $FTPD | sed 's/^.//')"
  fi
 
  ftp_dirs="$(echo $1 | sed 's/\// /g')"
  path=""
  for cer_dir in $ftp_dirs
  do
    path="$path/$cer_dir"
    $CURL -u $FTPU:$FTPP ftp://$FTPS/ -s -X "MKD $path"
  done
 
}
 

 


Процедура mount-smb() - Монтируем cifs ресурс в указанную папку (перед монтированием делает проверку на наличие уже примонтированной ФС)
Пример записи в /etc/crontab */1 *  *  *  *    root   . /opt/scripts/functions.sh; mount_smb "//XXX.XXX.X.XX/share" "/mnt/share"

Код:
mount-smb(){
  MOUNTED=$(echo "`bash -c df -h | grep \"$2\"`")
  if [ ! -n "$MOUNTED" ]; then
    mount.cifs -o rw,iocharset=utf8,dir_mode=0777,file_mode=0777,sec=lanman,guest,sec=ntlm "$1" "/mnt/$2/"
  fi
}
 

 


Процедура clear-active-large-log-files() - Очищает лог файлы, размер которых выше 1Gb
Пример записи в /etc/crontab  0 */2 *  *  *    root  . /opt/scripts/functions.sh; clear-active-large-log-files

Код:
clear-active-large-log-files(){
  list_files=`find /var/log/* -type f -mtime -1 -size +1G`
  for large_file in $list_files
  do
    size_large_file=`du -h /var/log/messages-20180729 | awk '{print$1}'`
    cat /dev/null > $large_file
  done
}
 

 


Процедура defragmentation-fs() - Проверяет потребность в проведении дефрагментации ФС (только ext4), при наличии потребности проводит её.
Пример записи в /etc/crontab  0 5 *  *  *    root  . /opt/scripts/functions.sh; defragmentation-fs /dev/sda1

Код:
defragmentation-fs(){
  file_system=$1
  echo "ДЕФРАГМЕНТАЦИЯ ФАЙЛОВОЙ СИСТЕМЫ $file_system"
  type_fs=`df -T $file_system | grep '/dev' | awk '{print$2}'`
  if [ $type_fs == "ext4" ]; then
    result_scan=`e4defrag -c $file_system | grep "($file_system)"`
    nothing=`echo "$result_scan" | grep "none can be defragmented"`
    if [ ! -n "$nothing" ]; then
      need_defrag=`echo "$result_scan" | grep "does not need defragmentation"`
      if [ ! -n "$need_defrag" ]; then
        echo "`e4defrag -v $file_system`"
      else
        echo "Файловая система $file_system в хорошем состоянии, провередение дефрагментации нецелесообразно."
      fi
    else
      echo "В файловой системе $file_system нечего дефрагментировать."
    fi
  else
    echo "Файловая система $file_system имеет тип отличный от EXT4, провередение дефрагментации невозможно!"
  fi
}
 

 


Процедура ram-cache-clean() - Очищет кэш оперативной памяти (НЕ SWAP, только RAM)
Пример записи в /etc/crontab  0 1 *  *  *    root  . /opt/scripts/functions.sh; ram-cache-clean

Код:
ram-cache-clean(){
  sync; echo 1 > /proc/sys/vm/drop_caches
  sync; echo 2 > /proc/sys/vm/drop_caches
  sync; echo 3 > /proc/sys/vm/drop_caches
}
 

 


Процедура backup-postgres-db() - Производим архивацию базы данных PostgreSQL
Пример записи в /etc/crontab  0 2 *  *  *    root  . /opt/scripts/functions.sh; backup-postgres-db test_DB

Код:
backup-postgres-db(){
  BACKUPS_DIR="/backups"
  dbname="$1"
  mkdir -p $BACKUPS_DIR/DB/$dbname
  if [ -f "$BACKUPS_DIR/DB/$dbname/$dbname-$(date '+%d-%m-%y').dump" ]; then
    rm -f "$BACKUPS_DIR/DB/$dbname/$dbname-$(date '+%d-%m-%y').dump"
  fi
  pg_dump -U postgres -Fc $dbname > $BACKUPS_DIR/DB/$dbname/$dbname-$(date '+%d-%m-%y').dump
}
 

 


Процедура maintenance-postgres-db() - Производим обслуживание базы данных PostgreSQL
Пример записи в /etc/crontab  0 2 *  *  *    root  . /opt/scripts/functions.sh; maintenance-postgres-db test_DB

Код:
maintenance-postgres-db(){
  BACKUPS_DIR="/backups"
  LOG_DIR="$BACKUPS_DIR/logs"
  LOG_FILE="$LOG_DIR/log_$(date +'%d-%m-%y').log"
  dbname="$1"
  strreindex="REINDEX DATABASE $dbname"
  psql -U postgres --log-file=$LOG_FILE --dbname=$dbname --command='VACUUM (FULL, ANALYZE)';
  psql -U postgres --log-file=$LOG_FILE --dbname=$dbname --command='CLUSTER';
  psql -U postgres --log-file=$LOG_FILE --dbname=$dbname --command="""$strreindex""";
}
 

 
 


Процедура backup-lxc-files() - Производим архивирование LXC контейнера
Пример записи в /etc/crontab  0 2 *  *  *    root  . /opt/scripts/functions.sh; backup-lxc-files www

Код:
backup-lxc-files(){
  BACKUPS_DIR="/backups"
  LXC_DATA="/lxc-data"
  lxc_container="$1"
  exclude_files=" --exclude=lost+found --exclude=*.thunderbird --exclude=*.dt --exclude=*.dump --exclude=*.mozilla --exclude=*.cache --exclude=*.pulse --exclude=*.thumbnails --exclude=*.1cv8 --exclude=Trash --exclude=$LXC_DATA/$lxc_container/rootfs/mnt --exclude=$LXC_DATA/$lxc_container/rootfs/tmp --exclude=$LXC_DATA/$lxc_container/rootfs/sys --exclude=$LXC_DATA/$lxc_container/rootfs/proc"
  lxc_state=`lxc-ls -f | grep $lxc_container | awk '{print $2}'`
  if [ "$lxc_state" == "RUNNING" ]; then
    lxc-stop -n $lxc_container
  fi
  mkdir -p $BACKUPS_DIR/LXC/$lxc_container
  if [ -f "$BACKUPS_DIR/LXC/$lxc_container/$lxc_container-$(date '+%d-%m-%y').tar.gz" ]; then
    rm -f "$BACKUPS_DIR/LXC/$lxc_container/$lxc_container-$(date '+%d-%m-%y').tar.gz"
  fi
  cd $LXC_DATA/$lxc_container
  tar --numeric-owner -cvp $exclude_files "$LXC_DATA/$lxc_container/" | pigz > "$BACKUPS_DIR/LXC/$lxc_container/$lxc_container-$(date '+%d-%m-%y').tar.gz"
  lxc_autostart=`lxc-ls -f | grep $lxc_container | awk '{print$5}'`
  if [ "$lxc_autostart" == "YES" ]; then
    lxc-start -n $lxc_container -d
  fi
}
 

 


Процедура rm_tmp_user() - Удаление временных файлов пользователя/all из папки /tmp
Пример записи в /etc/crontab  0 2 *  *  *    root  . /opt/scripts/functions.sh; rm_tmp_user all

Код:
rm_tmp_user(){
  if ! [ $# -gt 0 ]; then
    echo "Необходимо указать имя пользователя или all"
  else
    cd /tmp
    if [ $1 == "all" ]; then
      for i in /home/*;do
        if ! [ $i == "/home/usr1cv8" ]; then
          cer_user=`echo $i | sed "s/\/home\///"`
          echo "Удаление tmp файлов пользователя: $cer_user"
          ls -la | grep "$cer_user" | awk '{print$9}' | xargs rm -rf
        fi
      done
    else
      echo "Удаление tmp файлов пользователя: $1"
      ls -la | grep "$1" | awk '{print$9}' | xargs rm -rf
    fi
    #rm -rf /home/"$1"/.1cv8/1C/1cv8/
  fi
}
 

 


Процедура list_db_1c() - Выводит список баз данных зарегистрированных в кластере 1С (локально)
Пример использования [root@rdp ~]# . /opt/scripts/functions.sh; list_db_1c

Код:
list_db_1c(){
  UID_CLUSTER=`/opt/1C/v8.3/i386/ras --daemon cluster;  /opt/1C/v8.3/i386/rac cluster list | grep cluster | awk '{print$3}' | sed q`
  listdb=`/opt/1C/v8.3/i386/rac infobase --cluster=$UID_CLUSTER summary list | grep name | awk '{print$3}'`
  for dbname in $listdb
  do
    echo "$dbname"
  done
}
 

Всего записей: 3 | Зарегистр. 13-07-2010 | Отправлено: 15:57 29-10-2018 | Исправлено: riazmey, 17:16 29-10-2018
nikitos435

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
А можешь мне помочь с моим скриптом?
 
Добрый день! Есть сервер. На нем крутится АТС Есть скрипт, который собирает и упаковывает все необходимые настройки в файл, монтирует себе шару, отправляет файл на шару и отключает эту шару. Заметил, что скрипт не может подключить себе эту шару. Руками шара монтируется нормально Версия CentOS - CentOS release 6.3 (Final)
 
Шару монтирую так: mount //10.33.30.123/Backup /mnt/smbshare -o credentials=/root/secret.txt
 
Текст скрипта
 
#!/bin/sh
default_ip=`grep SERVER_DEFAULT /etc/welltime.conf | cut -f2 -d'=' | tr -d ' ','\r'`
db=`grep -A20 "\[$default_ip" /etc/welltime.conf | grep SQL_DB | head -n1 | cut -f2 -d'=' | tr -d ' ','\r'`
 
############################################
mkdir /tmp/backup/    #скопировать файлы РІ папку /tmp/backup
cd /tmp
cp -rn /etc/sysconfig/network-scripts/. /tmp/backup/network-scripts/    #скопировать файлы РІ папку /tmp/backup
cp -rn /var/www/html/welltime/backup/. /tmp/backup/
cp /etc/sysconfig/iptables /tmp/backup/iptables
cp -rn /etc/fail2ban/. /tmp/backup/fail2ban/
############################################
if [ -z $db ]; then
    echo "Cannot find config file"  
else
    echo `date`
    echo "sleeping random time..."
    sleep $[ RANDOM%100 ]
    echo "Backuping db $db.."
    hostname=`cat /etc/sysconfig/network | grep HOSTNAME | cut -f2 -d'='`
    addr=`ip ad ls | grep -o '10\.13[78]\.[[:digit:]]\+\.[[:digit:]]\+' | head -1`
if [ -z $addr ]
then
        file=/tmp/$hostname-`date "+%d-%m-%Y_%H:%M:%S"`-mysqldump.gz
else [ -n $addr ]
        file=/tmp/$hostname-vpn$addr"_"`date "+%d-%m-%Y_%H:%M:%S"`-mysqldump.gz
fi
    filename=`basename $file`
    /usr/bin/mysqldump -root -pass --ignore-table=$db.call --ignore-table=$db.queue_log --ignore-table=$db.cdr $db |  
        gzip -c > $file
    echo "Uploading to share.."
cp $file /tmp/backup
tar czf /tmp/welltime-`date +%y-%m-%d`.tar.gz /tmp/backup/    #заархивировать РёРјСЏ-дата
rm -rf /tmp/backup/    #удалить временные файлы
mount /mnt/
mv /tmp/welltime-`date +%y-%m-%d`.tar.gz /mnt
echo File welltime-`date +%y-%m-%d`.tar.gz moved to Share
umount /mnt
    echo "Done"
fi
 
Как мне правильно в этот скрипт добавить строку с монтированием шары?

Всего записей: 211 | Зарегистр. 20-03-2012 | Отправлено: 10:52 23-09-2020
riazmey



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь что поздно. но может понадобится. Посмтори тут: https://www.dmosk.ru/miniinstruktions.php?mini=linux-cifs

Всего записей: 3 | Зарегистр. 13-07-2010 | Отправлено: 17:12 18-11-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Скрипты для Centos 7


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru