Author: admin

  • Есть проблемы с местом на Exchange ? Как проверить базы на дефрагментацию.

    Если у вас есть проблемы с местом, и вы хотите проверить базы почтовых ящиков на фрагментацию, то вот такой командой вы можете посмотреть сколько места освободится в результате дефрагментации:
    Get-MailboxDatabase -Status | ft Name,DatabaseSize,AvailableNewMailboxSpace
    Есть проблемы с установкой и настройкой Microsoft Exchange ? Обращайтесь – office@itfb.com.ua
  • Бэкап с исключением файлов командой tar

    Не всегда есть необходимость сохранять всю директорию. Для бэкапа в linux системах зачастую используют команду tar. Таким образом для сохранения бэкапа с исключением можно использовать команду

    tar -czvpf /var/www/site/data/site.tar.gz –exclude /var/www/site/data/www/site.ru/wp-content/uploads/* /var/www/site/data/www/site.ru

    где

    с – создать архив

    z – сжать архив  с помощью gzip

    v – показать список сохраняемых файлов

    p – сохранить владельца

    f – использовать файл для архива

    exclude – исключить

  • запускаем скрипты через sudo. Ошибка Sudo: sorry, you must have a tty to run sudo

    Если у вас есть скрипты которые выполняется через cron, очень часто есть проблемы с запуском, из-за ошибки:
    Ошибка Sudo: sorry, you must have a tty to run sudo
    Обойти её можно поправив конфигурационный файл /etc/sudoers, закоментировав строчку:
    #Default requiretty
    Если у вас есть проблемы с Linux, обращайтесь – office@itfb.com.ua
  • Определяем Оpen Relay на почтовом сервере

    Если у вас есть подозрения на рассылку спама с вашего почтового сервера, то в первую очередь необходимо проверить не является ли ваш сервер открытым для пересылки.
    Это можно сделать с помощью сайта:
    http://mxtoolbox.com/diagnostic.aspx
    Результатом диагностики будет такая информация: 
    SMTP Open RelayOK – Not an open relay.
    Если всё ок – Not an open relay, если же нет – срочно обращайтесь к системному администратору, к нам например – office@itfb.com.ua
  • Как на лету создать swap в Linux ?

    Если вам надо создать swap файл на лету, при этом не изменять раздел диска, можно применить следующие команды:
    # dd if=/dev/zero of=/var/swap bs=1M count=1048
    # chmod 0 /var/swap
    # mkswap /var/swap
    # echo “/var/swap none swap defaults 0 0” >> /etc/fstab
    # swapon -a
    Есть проблемы с установкой и настройкой Linux ? Обращайтесь – office@itfb.com.ua
  • Работа с томами Linux на vSphere

    Современные дистрибутивы Linux, работающие на VMware vSphere, могут динамически управлять хранением данных. Можно создавать новые файловые системы или расширять существующие без необходимости остановки и перезагрузки сервера. Приведем несколько примеров, для ОС Red Hat и CentOS 5.x версий.

    Рассмотрим Linux тома, если вы решили использовать весь диск под простую файловую систему, то лучше не использовать разбиение диска, а использовать LVM, что в дальнейшем упростит возможность управления пространством. Вы конечно можете не использовать LVM для нового диска, а просто отформатировать его в ext3 например, но я не рекомендую вам делать это, LVM имеет много преимуществ, которые мы рассмотрим дальше.

    Если вы собираетесь использовать утилиты разметки диска, вы должны знать следующее:

    • Чтобы избежать снижения производительности файловой системы, вам необходимо указать начала раздела в соответствии с началом устройства хранения используя команду fdisk.
    • Использование разделов усложняет процесс расширения файловой системы по сравнению с использованием обычных дисков.

    Если у вас не получится сравнять начало файловой системы с началом устройства хранения, то вы потеряете до 15% производительности.

    Добавление нового диска без перезагрузки

    После того как новый виртуальный диск будет добавлен к виртуальной машине Linux, необходимо пересканировать новые диски. Это можно выполнить командой ниже, где host0 нужно заменить на SCSI ID добавленных дисков.

    echo “- – -” > /sys/class/scsi_host/host0/scan

    Для того, чтобы посмотреть добавились диски или нет используйте команду dmesg, ищите сообщение “Attached scsi disk”.

    # dmesg | tail -n 10 | grep Attached

    sd 0:0:1:0: Attached scsi disk sdb

    Теперь необходимо создать физический том LVM, группы томов, логический том и файловую систему на диске.

    pvcreate /dev/sdb

      Physical volume “/dev/sdb” successfully created

    vgcreate VolGroup01 /dev/sdb

      Volume group “VolGroup01” successfully created

    lvcreate -n LogVol00 -l+100%VG VolGroup01

      Logical volume “LogVol00” created

    mkfs.ext3 /dev/VolGroup01/LogVol00

    Если вы уверены, что вам не нужен LVM, то можете просто отформатировать диск

     

    mkfs.ext3 /dev/sdb 

    Теперь новый том готов для монтирования.

    Изменение размеров существующих дисков Linux

    После того как виртуальному диску был изменен размер, нужно пересканировать изменения в Linux. Вы должны знать SCSI ID диска изменившего размер, и заменить  0:0:1:0 на свой SCSI ID в исходном примере:

    echo 1 > /sys/bus/scsi/devices/0:0:1:0/rescan

    Проверяем, что изменения применились успешно, в выводе команды dmesg ищем сообщение “capacity change”.

    dmesg | tail -n 10 | grep change

    sdb: detected capacity change from 8589934592 to 17179869184

    Если не используется LVM, то расширение диска можно произвести

    resize2fs /dev/sdb

    Другие способы расширения LVM тома.

    Расширение тома LVM и файловой системы, без разделов (партиций)

    Пересканируем физический том LVM, sdb заменяем на свой

    pvresize /dev/sdb

    Расширяем логический LVM том до нового полного размера группы томов(Volume Group):

    lvextend -l+100%VG /dev/VolGroup01/LogVol00

    Теперь вы можете изменить размер смонтированной файловой системы:

    resize2fs /dev/VolGroup01/LogVol00

    Расширение тома LVM и файловой системы с использованием разделов (партиций)

    Вы не можете изменить расширить размер физического тома LVM с разделами (партициями) без перезагрузки сервера. Но вы можете создать диск и расширить группу томов (Volume Group)

    Создание нового раздела (партиции) для диска:

    # fdisk /dev/sdb

    Command (m for help): n

    Command action

       e   extended

       p   primary partition (1-4)

    p

    Partition number (1-4): 2

    First cylinder (3134-3916, default 3134):

    Using default value 3134

    Last cylinder or +size or +sizeM or +sizeK (3134-3916, default 3916):

    Using default value 3916

     Command (m for help): w

    The partition table has been altered!

     Calling ioctl() to re-read partition table.

     WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

    The kernel still uses the old table.

    The new table will be used at the next reboot.

    Syncing disks.

    Перечитаем таблицу разделов (партиций)

    partprobe /dev/sdb

    Создадим новый физический том LVM для нового раздела

    pvcreate /dev/sdb2

    Добавим новый физический том LVM к существующей группе томов (Volume Group)

    vgextend VolGroup01 /dev/sdb2

    Расширяем логический том LVM до максимального размера группы томов (Volume Group)

    lvextend -l+100%VG /dev/VolGroup01/LogVol00

    В результате вы можете расширить ext3 файловую систему

    resize2fs /dev/VolGroup01/LogVol00

  • Управляем принтером из командной строки.

    Как посмотреть уровень тонера, Статус принтера, очередь печати принтера, хватает ли бумаги из коммандной строки ? Для этого есть вот такой скрипт на powershell:
    <# 
    Refer Usage at line 55 
    #> 
    Function Get-PrinterInformation{ 
     
    [cmdletBinding()] 
    param( 
            [parameter(Mandatory=$true, 
                       ValueFromPipeline=$true, 
                       ValueFromPipelinebypropertyName=$true, 
                       helpmessage=”Provide Print Server Name”)] 
            [String[]]$PrintServerName, 
     
            [parameter(Mandatory=$true, 
                       ValueFromPipeline=$true, 
                       ValueFromPipelinebypropertyName=$true, 
                       helpmessage=”Provide Printer Name”)] 
            [String[]]$PrinterName 
            ) 
     
     
    BEGIN {} 
    PROCESS { 
    Add-Type -AssemblyName System.printing 
    $PrintServer = New-Object System.Printing.PrintServer(“\$($PrintServerName)”) 
    foreach($printer in $PrinterName){ 
    $printerinformation = $PrintServer.GetPrintQueue($printer) 
    $property = @{\’Printer Name\’ = $printer; 
                  \’Printer Full Name\’ = $printerinformation.FullName; 
                  \’Location\’ = $printerinformation.Comment; 
                  \’Description\’ = $printerinformation.Description; 
                  \’Paper Problem\’= $printerinformation.HasPaperProblem; 
                  \’Toner Available\’ = $printerinformation.HasToner; 
                  \’Door Issues\’ = $printerinformation.IsDoorOpened; 
                  \’Is Not Available\’= $printerinformation.IsNotAvailable; 
                  \’Is PowerSaver On\’ = $printerinformation.IsPowerSaveOn; 
                  \’Is Toner Low\’ = $printerinformation.IsTonerLow; 
                  \’Queue Status\’ = $printerinformation.QueueStatus; 
                  \’Is in Error\’ = $printerinformation.IsInError; 
                  \’Is Manual Feed Required\’ = $printerinformation.IsManualFeedRequired; 
                  \’Is Out Of Paper\’ = $printerinformation.IsOutOfPaper; 
                  \’Need Intervention\’ = $printerinformation.NeedUserIntervention; 
                  \’Is Paper Jammed\’ = $printerinformation.IsPaperJammed; 
                  \’Default Priority\’ = $printerinformation.DefaultPriority; 
                  \’Is Printing\’ = $printerinformation.IsPrinting; 
                  \’Number Of Jobs\’ = $printerinformation.NumberOfJobs;} 
                   
                  $object = New-Object -TypeName PSObject -Property $property 
                  Write-Output $object 
     
    END {} 
     
    <# 
        .USAGE 
        Get-PrinterInformation -PrintServerName \’Something\’ -PrinterName $PrinterList | Export-Csv C:PrintInfo.csv – For Multiple Printers from Sam 
         
        Get-PrinterInformation -PrintServerName \’Something\’ -PrinterName \’Something\’  
     
        $html = Get-PrinterInformation -PrintServerName \’Something\’ -PrinterName \’Something\’ | ConvertTo-Html -Fragment 
        ConvertTo-Html -Body $html -CssUri C:style.CSS | Out-File C:TempFile.html 
        Invoke-Item C:TempFile.Html 
     
        Note: You can use NET VIEW PRINTSERVERNAME to get the list. More Precise Open CMD prompt and type Net View “PRINTSERVERNAME” | find /i “Print”  
     
    #> 
  • Когда пользователь в последний раз менял пароль в Active Directory ?

    Если вам необходимо посмотреть когда последний раз пользователь менял пароль, это можно сделать используюя powershell:
    Import-Module ActiveDirectory
    Get-ADUser ‘UserName’ -properties PasswordLastSet | Format-List
    Например: 
    Get-ADUser ‘tani.alessandro’ -properties PasswordLastSet | Format-List
    Смотрим на значение PasswordLastSet.
    Есть проблемы с установкой и настройкой active directory ? ОБращайтесь – office@itfb.com.ua
  • Сравниваем две базы Mysql. Как сравнить базы Mysql ?

    Если вам необходимо сравнить две базы Mysql, можно использовать следующие методы:
    1. Установить программу , и сравнить базы в ней. 
    2. Сравнить между собой два дампа между собой:
    mysqldump –skip-comments –skip-extended-insert -u root -p dbName1>file1.sql
    mysqldump –skip-comments –skip-extended-insert -u root -p dbName2>file2.sql
    diff file1.sql file2.sql
    Если у вас есть проблемы с установкой и настройкой mysql, обращайтесь – office@itfb.com.ua
  • Вывести результаты запроса Mysql в формат csv

    Если вам необходимо вывести результаты запроса Mysql в csv формат, можно использовать следующие команды, как в примере:
    SELECT order_id,product_name,qty
    FROM orders
    INTO OUTFILE \’/tmp/orders.csv\’
    FIELDS TERMINATED BY \’,\’
    ENCLOSED BY \’”\’
    LINES TERMINATED BY \’
    \’
    У вас есть проблемы с настройкой Mysql? Обращайтесь к нам – office@itfb.com.ua!