Home
- Details
- Written by: po3dno
- Category: MSSQL
- Hits: 893
- Details
- Written by: po3dno
- Category: Other
- Hits: 839
Архивы
Создать архив .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/
- Details
- Written by: po3dno
- Category: MSSQL
- Hits: 866
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;
- Details
- Written by: po3dno
- Category: C#
- Hits: 918
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\)$
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);
}
}
}
}
- Details
- Written by: po3dno
- Category: Power Shell
- Hits: 859
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