linux полезные команды


// перенос с удаленного сервера на локальный (pull) recursive, verbose, compress, human readable, archive mode, progress
// В rsync слеш на конце имеет значение - будет выгружено содержимое директории.
rsync -vrzhaP man@site.ru:www/sitedir/site.ru site.local
// тоже самое scp
scp user@site.ru:www/sitedir/site.ru site.local
// скачать пропуская существующие файлы, и исключить директорию upload, cache
rsync --ignore-existing --exclude "upload" --exclude "cache"
// если нет ssh, есть ftp. Закачать с локального на удаленный (ключ -R)
lftp -e 'mirror -R local/ /home/user/remote/ ' -u user,PassWorD dev10.ru
// скачать с удаленного на локальный
lftp -e 'mirror  remote/ local/ ' -u user,PassWorD dev10.ru
//  скачать/закачать исключая некоторые директории, а также пропуская уже существующие
mirror --only-newer --exclude "upload/" --exclude "bitrix/cache/"
// монтировать фтп сервер как локальный для манипуляции с файлами
curlftpfs ftp.server.ru /mnt/ftp/ -o user=username:password

// поиск в файле 
grep 'string' path/to/file/file.txt 
// поиск в директории 
grep -r 'string' dir 
//поиск с подсчетом строк 
grep -oni 'string' file.txt | wc -l 
// поиск по части файла
sed -n 5000,5005p error.log | grep 'size'
// копирование, перемещение 
cp -r my/dir new/dir 
mv old/dir new/dir 
// символическая ссылка 
ln -s /path/to/link link_name 
// быстро заменить в файле строку 
sed -i 's/string/new_string/g' file.txt 
// удалить всю строку содержащую текст 
sed -i '/some string/d' file.txt 
// bitrix поиск измененных файлов за 22-е число, исключая папки кеша 
find . -type f ! -path "*/cache/*" ! -path "*/managed_cache*" ! -path "*/upload/*" ! -path "*/html_pages/*" -ls |grep 'мая 22' > may22_bez_cache.log 
// дамп БД с сжатием 
mysqldump -u user -pupasswd my-database | gzip > one.sql.gz 
// импорт сжатой бд 
gunzip < myfile.sql.gz | mysql -u root -p 
mydb zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database 
// быстро просмотреть строки от n - m 
sed -n '500,505p;' backup.sql 
// импорт части файла в бд
sed -n 101,110p filename > /tmp/mysql.pipe & mysql –uusername -p -Ddatabasename 
// просмотр архива 
tar -tf archive.tar.gz 
// сортировка вывода по 5 колонке 
ls -la | sort -k 5 
// вывод прогресса с помощью pv , tee 
unzip -q upload.zip | pv -l > /dev/null 
// быстро закачать файл по протоколу webdav 
curl -T backup.tar -umyname:mypass https://webdav.yandex.ru/dir | tee /dev/null 
// быстро скачать файл по webdav
curl --user <username>:<password> -o filename https://webdav.yandex.ru/filename
// продолжить прерванную скачку (опция -с)
wget -r -nH -np -c --cut-dirs=1 --no-check-certificate -U Mozilla --user=user@site.ru --password='123passs_w_d456' webdav.yandex.ru/backups/2000-03-10/site.ru_files-2000-03-10--01-03.tar.gz 
// монтировать webdav как файловую сист. (утилита davfs2)
mount -t davfs http(s)://addres:<port>/path /mount/point
// поделить файл на части и вывести n-й столбец. awk по сути это split. 
awk -Fuser '{print $2}' /var/log/auth.log 
// вывести имена файлов в столбик, без атрибутов
ls -1 admin_*
// сортировка по имени
ls -v
// ls вывести только имена
ls -1
// распаковать конкретную папку 
unzip archive.zip /path/need/extract 
tar -xzf archive.tar.gz /path/need/extract 
// распаковать в конкретную папку (ключ -C) 
tar -xzf archive.tar.gz -С /path/to/ /path/need/extract 
// распаковать пропуская существующие ( --keep-old-files)
tar -k some.tar
// вывести 5 самых крупных директорий 
du -h some/dir/path | sort -nr | head -n 5 

Циклы в bash


// быстро создать несколько файлов
array=(header.php footer.php styles.css template_styles.css description.php);for i in ${array[@]};do touch $i;done;
// битрикс бэкап
cat *.tar.gz* >> mysite_backup.tar.gz
// рекурсивно заменить строки. ключ -l выводит совпадения списком
grep -rl oldtext . | xargs sed -i -e 's/oldtext/newtext/g'
// сжать рекурсивно картинки формата png
for i in some/dir/*.png; do optipng  -p "$i" ; done;
// сжать рекурсивно картинки формата jpg 
for i in some/dir/*.jpg; do jpegoptim -p "$i" ; done; 
// сжать рекурсивно css
for i in *.css; do cleancss $i -o `echo $i | sed  's/css/min\.css/g'`  ; done;
// бэкапы файлов
for i in *.css; do cp $i `echo  $i | sed 's/.css/.back.css/g'`; done;
// сжать js
uglifyjs -o script.min.js script.js

// убить процессы 1 дневной давности
killall -o 1d php
// размер дискового пространства
ncdu /media/aaa/part1
// вывести рекурсивно последние измененные файлы(напр. для поиска вирусов)
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
// поиск файлов по пользователю
find /dir/ -user aaa -type d
// Скачать гит репозиторий без Гита
wget --no-check-certificate --content-disposition https://github.com/joyent/node/tarball/v0.7.1
# --no-check-cerftificate was necessary for me to have wget not puke about https
curl -LJO https://github.com/joyent/node/tarball/v0.7.1
// добавить пользователя в группу
usermod -a -G dialout user1
// удалить файлы по расширению
find /folder -type -f -name *.jpg -delete

Leave a comment

Your email address will not be published.


*