• Home
  • PS
  • C#
  • Perl
  • MSSQL
  • MariaDB
  • Linux
  • Docker
  • MacOS
  • PG
  • Exchange Server
  • Windows
  • Other

Home

linux commands

Details
Written by: po3dno
Category: Other
Created: 08 May 2019
Hits: 960

Архивы

Создать архив .tar/.tar.gz

tar -cvf file.tar /full/path — создать .tar (без сжатия)

tar -czvf file.tar.gz /full/path — создать .tar.gz (архив GZip)

Распаковать архив .tar/.tar.gz

tar -xvf file.tar — распаковать обычный .tar (без сжатия)

tar -xzvf file.tar.gz — распаковать .tar.gz (запакованны GZip-ом)

Распаковать архив .gz (GZip, без TAR)

gunzip file.gz — распаковать обычный .gz (GZip, без TAR. Распаковываемый архив должен иметь права на исполнение: chmod +x file.gz)

 

Базы данных MySQL

Импорт дампа базы данных

mysql -u db_user -p -h localhost db_name < dump.sql

Импорт дампа базы данных, упакованных в gzip (*.sql.gz)

gunzip < dump.sql.gz | mysql -u db_user -p db_name

Экспорт базы данных (создание дампа)

mysqldump -u db_user -p -h localhost db_name > dump.sql

Создание архива GZip с дампом БД

mysqldump -u db_user -p -h localhost db_name | gzip > dump.tar.gz

Создание дампа нескольких баз данных одновременно

mysqldump -u db_user -p -h localhost -B db_name1 db_name2 db_name3 > databases.sql

Создание дампа всех баз данных

mysqldump -u db_user -p -h localhost -A > all-databases.sql

Сохранить только структуру БД

mysqldump —no-data -u db_user -p -h localhost db_name > schema.sql

Создание дампа только одной или нескольких таблиц БД

mysqldump -u db_user -p -h localhost db_name tbl_name1 tbl_name2 tbl_name3 > dump.sql

Дополнительные атрибуты (уменьшают размер дампа и повышают скорость работы)

mysqldump -Q -c -e -u db_user -p -h localhost db_name > /path/to/file/dump.sql

— Q — оборачивает имена обратными кавычками;

— c — делает полную вставку, включая имена колонок;

— e — делает расширенную вставку.

Если не запускается MySQL, лог ошибок можно увидеть прямо в консоли (команда для Windows)

mysqld —defaults-file=C:Program Files…my.ini —console

 

Файлы/директории

Узнать абсолютный путь до текущего каталога

pwd

Удалить папку со всем ее содержимым

rm -R /path/to/dir

Создать символьную ссылку

ln -s  /etc/apache2/sites-available/site.com.conf /etc/apache2/sites-enabled/site.com.conf

Подсчитать количество файлов в текущем каталоге (включая вложенные)

find . -type f | wc -l

Подсчитать занимаемый размер каталога

du -sh /var

Вывести на экран количество файлов в поддиректориях текущего каталога

for D in `ls -Fl | grep / | awk ‘{print $9}’` ; do echo $D `find -L $D -type f -print | wc -l` ; done

Удалить в директории все файлы старше N дней

find /home/user -type f -mtime +N -exec rm {} ;

Узнать информацию об использовании inodes (файловых дескрипторов):

df -i

Создать патч

diff -uN file.orig file.new > file.patch

Наложить патч

patch file.orig < file.patch

Найти определенные файлы и скопировать их с сохранением иерархии

find . -name «ru.po» -exec cp —parents «{}» /destination/dir/ «;»

 

Прочее

Вывести последние 10 строк из лог-файла, с автообновлением в реальном времени

tail -n10 -f /var/log/sites/your-site.ru.error.log

(путь до файлов с логами Apache у вас скорее всего будет другим)

Узнать информацию о процессоре

cat /proc/cpuinfo

или

lscpu

Показать ТОП10 медленных запросов MySQL (сортировка по времени исполнения time):

mysqldumpslow -s t -t 10 /var/log/mysql-slow.log

Показать ТОП10 запросов MySQL, в который не используются индексы (сортировка по кол-ву вызовов count):

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

Установить корректно конвертер шрифтов (Debian):

apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11

wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip

unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && mv sfnt2woff /usr/local/bin/

AddNewDBsToGroup

Details
Written by: po3dno
Category: MSSQL
Created: 06 May 2019
Hits: 1010

CREATE PROCEDURE dbo.AddNewDBsToGroup
@group SYSNAME = N'sql01_sme_AG', -- *** SPECIFY YOUR GROUP NAME HERE ***
@debug BIT = 1
AS
BEGIN
SET NOCOUNT ON;

DECLARE
@sql NVARCHAR(MAX) = N'';

DECLARE @t TABLE(db SYSNAME);

INSERT @t SELECT name FROM sys.databases
WHERE replica_id IS NULL AND database_id > 4;

-- add the database to the group on the primary:

SELECT @sql += N'ALTER AVAILABILITY GROUP '
+ QUOTENAME(@group) + ' ADD DATABASE ' + QUOTENAME(db) + ';'
FROM @t;

IF @debug = 1
BEGIN
PRINT @sql;
END
ELSE
BEGIN
EXEC master..sp_executesql @sql;
END
END
GO

 

EXEC dbo.AddNewDBsToGroup @debug = 0;

чтение DNS лога

Details
Written by: po3dno
Category: C#
Created: 21 March 2019
Hits: 1102
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Threading;
using System.Text.RegularExpressions;
using System.Collections.Concurrent;
 
 
namespace dns_log_parser
{
    class Program
    {
 
        static long offset = 0;
        //static FileStream file;
        static StreamReader reader;
 
        static ConcurrentDictionary<(string, string), int> dnsstat = new ConcurrentDictionary<(string, string), int>();
        static void Main(string[] args)
        {
            if (args.Count() < 1) {
                Console.WriteLine("Usage: dns_log_parser.exe [path_to_log]");
                Environment.Exit(0);
            }
 
            string sourceFile = args[0];
 
            if (!File.Exists(sourceFile))
            {
                Console.WriteLine("{0} not exist", sourceFile);
                Environment.Exit(0);
            }
 
            offset = (new FileInfo(sourceFile)).Length;
 
            Timer t = new Timer(TimerCallback, null, 0, 2000);
 
            while (true)
            {
                FileStream file = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                var info = new FileInfo(sourceFile);
                if (info.Length < offset)
                    offset = 0;
                using (new StreamReader(file))
                {
                    file.Seek(offset, SeekOrigin.Begin);
                    reader = new StreamReader(file);
 
                    file.Seek(offset, SeekOrigin.Begin);
                    if (!reader.EndOfStream)
                    {
                        do
                        {
                            string line = reader.ReadLine();
                            // ^.+Rcv\s+([0-9\.]+)\s+([0-9A-Fa-f]+)\s+.+\[.+\]\s+(\w+)\s+\(\d\)(.+)\(0\)$
                            // https://answers.splunk.com/answers/132364/dns-debug-log-dns-log-format-review.html
                            Regex regex = new Regex(@"^.+Rcv\s+([0-9\.]+)\s+([0-9A-Fa-f]+)\s+.+\[.+\]\s+(\w+)\s+\(\d\)(.+)\(0\)$");
 
                            Match match = regex.Match(line);
                            if (match.Success)
                            {
                                string ip = match.Groups[1].Value;
                                //string dsthost = match.Groups[4].Value;
                                string dsthost = Regex.Replace(match.Groups[4].Value, @"\(\d+\)+", ".");
 
                                int curcount;
                                if (dnsstat.TryGetValue((ip, dsthost), out curcount))
                                {
                                    dnsstat[(ip, dsthost)] = curcount + 1;
                                    if (curcount % 10 == 0)
                                    {
                                        //Console.WriteLine("ip: {0} dns: {1} count: {2}", ip, dsthost, curcount);
                                    }
                                }
                                else
                                {
                                    dnsstat.TryAdd((ip, dsthost), 1);
                                }
 
                                //Console.WriteLine("{0} {1}", ip, dsthost);
                            }
                               
                        } while (!reader.EndOfStream);
 
                        offset = file.Position;
                        //Console.WriteLine("{0}", offset);
                    }
                    reader.Close();
                    Thread.Sleep(100);
                }
            }
        }
        private static void TimerCallback(Object o)
        {
            ConcurrentDictionary<(string, string), int> dnsstatviewtemp = dnsstat;
 
            var dnsstatview = dnsstatviewtemp.OrderByDescending(x => x.Value).Take(50);
 
            Console.Clear();
 
            foreach (KeyValuePair<(string, string), int> item in dnsstatview)
            {
                Console.WriteLine("Key: {0}, Value: {1}", item.Key, item.Value);
 
            }
 
        }
    }
}

mount vhd

Details
Written by: po3dno
Category: Power Shell
Created: 05 March 2019
Hits: 1023
Sysprep /generalize /shutdown /oobe

First, mount the vhd using

Mount-WindowsImage -ImagePath C:\VHDs\BigHomies.vhdx -Path C:\VHDMount -Index 1

Then, capture it into a wim with

New-WindowsImage -CapturePath C:\VHDMount -Name Win7Image -ImagePath C:\CapturedWIMs\Win7.wim -Description "Yet another Windows 7 Image" -Verify

And let it do it's thing. When you are done you can unmount the vhd and discard any changes using:

Dismount-WindowsImage -Path C:\VHDMount -Discard

SQL AG config multisubnets

Details
Written by: po3dno
Category: MSSQL
Created: 28 December 2018
Hits: 1083

sql01_sme_AG_sql01-sme1c         Online  sql01_sme_AG  Network Name

 

Get-ClusterResource sql01_sme_AG_sql01-sme1c |Set-ClusterParameter -Name RegisterAllProvidersIP -Value 0

Get-ClusterResource sql01_sme_AG_sql01-sme1c |Set-ClusterParameter -Name RegisterAllProvidersIP -Value 0

Get-ClusterResource sql01_sme_AG_sql01-sme1c  | Update-ClusterNetworkNameResource

  1. Fix Recovery Pending State in SQL Server Database
  2. Disable NETBIOS
  3. Files and Settings guide for Outlook
  4. InstallWinUpdates

Subcategories

Power Shell Article Count:  53

C# Article Count:  10

Perl Article Count:  1

Exchange Server Article Count:  15

Other Article Count:  24

MSSQL Article Count:  17

Windows Article Count:  25

MariaDB Article Count:  3

Linux Article Count:  7

Docker Article Count:  2

pg Article Count:  1

Page 15 of 32

  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

Login Form

  • Forgot your password?
  • Forgot your username?

Statistics

  • Users 2
  • Articles 164
  • Articles View Hits 149075