Редактировать

Back-end Инструменты

Сервисы

Классы и библиотеки

Компоненты и модули Битрикс

Проверка сайта на наличие вредоносного кода

Полезные команды

  • Синхронизация файлов и папок локального ПК с сервером. Команда сравнит файлы - скачает новые и удалит на локальной машине то чего нет на сервере, с этим моментом быть внимательным, для отключения удаления уберите флаг --delete

    rsync -ah --progress --size-only --delete --numeric-ids -e "ssh -T -c arcfour -o Compression=no -x" someuser@somesite.ru:/var/www/some/folder/path/on/serevr/ /some/folder/path/on/your/pc
    

    В случае получения ошибки:

    Unable to negotiate with XX.XX.XX.XX port 22: no matching cipher found. Their offer: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
    rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
    rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]
    

    Эта ошибка означает, что на сервере к которому происходит подключение SSH не поддерживает выбранный протокол шифрования, в данном случае это arcfour и сервер приводит список поддерживаемых, нужно выбрать один из поддерживаемых и использовать его, например -c aes256-ctr

  • Минимизация изображений

    # Для JPG
    find . -type f -iname '*.jp*g' -print0 | xargs -0 jpegoptim --strip-all --all-progressive --max=85 -t
    
    # Для PNG
    find . -type f -iname '*.png' -print0 | xargs -0 optipng -strip all -o 1 -v
    
  • Подсчет количества найденных файлов на примере архивов gz

    find . -type f -name '*.gz' |  wc -l
    
  • Поиск по содержимому файлов

    # просто ищем без учета регистра
    grep -iR "some text in file"
      
    # ищем только в файлах с расширением "php"
    grep --include="*.php" -nRHIi "some text in file" .
      
    # ищем без учета регистра в файлах php исключая каталог bitrix (для исключения нескольких директорий используем маску или повторяем ключ --exclude-dir)
    grep --include="*.php" --exclude-dir="bitrix" -iR "some text in file"
      
    # описание ключей  
    --include=PATTERN - Recurse in directories only searching file matching PATTERN.
    -n, --line-number - Prefix each line of output with the line number within its input file.
    -R, -r, --recursive - Read all files under each directory, recursively; this is equivalent to the -d recurse option.
    -H, --with-filename - Print the filename for each match.
    -I - Process a binary file as if it did not contain matching data; this is equivalent to the --binary-files=without-match option.
    -i - case-insensitive results.
    
  • Определение свободного места на сервере

    # покажет количество места в общем
    df -h
      
    # просмотр размеров по папкам
    du -h --max-depth=1 /path/to/folder/ | sort -n -r
    
  • Установка прав на файлы и папки

    # файлы
    sudo find . -type f -exec chmod 664 {} \;
      
    # папки
    sudo find . -type d -exec chmod 775 {} \;
    
  • Изменение владельца папок

    sudo chown -R www-data:www-data .
    
  • Подключение к удаленному рабочему столу из Linux в Windows

    rdesktop -u yourUserName -p yourPass someHostNameOrIP
    
  • Архивирование/разархивирование

    # рекурсивно разархивировать все gz в те же папки где они лежат с удалением самого архива
    find . -name "*.gz" | xargs gunzip
    
    # Простое разархивирование одиночного файла
    tar -xvzf community_images.tar.gz
    tar -xvJf community_images.tar.xz
      
    # Разархивирование архива, поделенного на части
    cat часть_1 часть_2 | tar -xvz
      
    **если получаем ошибку**
    ```tar: Error opening archive: Failed to open '/dev/sa0'```
      
    тогда используем команду
      
    ```cat часть_1 часть_2 | tar -xvzf -```
      
    тут "-f -" означает "файл из потока"
      
    # ИЛИ
    # Если все части архива находятся в одной папке, то команда для склеивания выглядит так:
    cat backup.tar.* | tar -xvz
    
      # f: this must be the last flag of the command, and the tar file must be immediately after. It tells tar the name and path of the compressed file.
      # z: tells tar to decompress the archive using gzip
      # x: tar can collect files or extract them. x does the latter.
      # v: makes tar talk a lot. Verbose output shows you all the files being extracted.
        
    # Исключение папки из архивируемых файлов и создать архив в той же папке, которую архивируем
    touch p.tar.gz
    tar --exclude='upload/*' --exclude='bitrix/*' --exclude='*.zip' --exclude='p.tar.gz' -czvf p.tar.gz .
        
    # To zip up an entire directory (including all subdirectories), type the following command:
    zip -r data *
    
    # To use unzip to extract all files of the archive pics.zip into the current directory & subdirectories:
    unzip  pics.zip
    
    # Создание tar.gz архива
    tar [-ключи] [название архива] [путь, что запаковать]
      
    # создать .tar  
    tar -cvf file.tar /full/path
      
    # создать .tar.gz (архив)
    tar -czvf file.tar.gz /full/path
      
    # создать .tar.bz2 (архив)
    tar -cjvf file.tar.bz2 /full/path
    
    # создать zip
    zip -r file.zip /full/path
    
    # Распаковать:
    tar -xvf file.tar.gz
    unzip file.zip
      
    Ключи:
    с - (Create) создать архив.
    z – создает архив .tar.gz
    j - создает архив .tar.bz2
    x - (eXtract) позволяет вам извлекать файлы из архива.
    v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
    f - является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
    z - позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.
    t - (Test) просмотреть содержимое архива.
    
    # Архивировать по кускам
    tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.
    
    # В случае ошибки "split: illegal option -- -"
    tar cvzf - dir/ | split -b 1024MB - sda1.backup.tar.gz.
      
    #If you happen to be trying to split file to fit on a FAT32 formatted drive use a byte limit of 4294967295. For example:
    tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
    split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
    
  • Передача файлов на Яндекс.Диск

    curl --user USER:PASSWORD -T "file1" https://webdav.yandex.ru/
    curl --user USER:PASSWORD -T "{file1,file2,...}" https://webdav.yandex.ru/
    curl --user USER:PASSWORD -T "file[1-5].ext" https://webdav.yandex.ru/
    

Подборка статей