Syntax highlighting of 4142f6d ~( linux/filesystem)
# Filesytem [TOC] ## Полезные ссылки [Активность диска](https://askubuntu.com/questions/276669/how-to-monitor-disk-activity) [Скорость диска](https://ru.stackoverflow.com/questions/544622/Как-протестировать-скорость-чтения-записи-блочного-устройства) ## Полезные команды ```bash # разделы в виде их точек монтирования и их заполненность в Gb df -H # все разделы, имена устройств и расположение на диске fdisk -l # использование диска df -h --totalk # использование inodes df -Ti / # размер директории du -h /path/to/folder # размер директории (без вывода файлов) du -hs /path/to/folder # отображение размера директорий с сортировкой du -chd 1 | sort -h ``` ## Очистка диска ### По размеру директорий ```bash df -h du -hs /dir sudo du -chd 1 | sort -h ``` ### Docker ```bash docker system df docker rmi $(docker images | grep "<none>" | awk '{print $3}') docker ps -s # --- https://docs.docker.com/config/pruning/#prune-everything # https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes docker system prune -a ``` Все логи контейнера храняться в директории */var/lib/docker/containers*, поэтому при обильном выводе журнала директория контейнера может существенно вырасти. Перезауск контейнера удаляет историю логов. Логи можно лимитировать: Создаем (корректируем) файл конфигурации докер-демона ```bash sudo systemctl restart docker.service sudo vim /etc/docker/daemon.json ``` ```json { "log-opts": { "max-size": "100m" } } ``` Запускаем докер-демон ```bash # sudo systemctl daemon-reload sudo systemctl start docker.service sudo systemctl status docker.service ``` ### Journal ```bash cd /var/log sudo du -chd 1 | sort -h # --- https://ubuntuhandbook.org/index.php/2020/12/clear-systemd-journal-logs-ubuntu/ sudo journalctl --vacuum-time=2days # --- or sudo journalctl --vacuum-size=100M # --- ``` ### Apt ```bash sudo apt-get autoremove sudo du -sh /var/cache/apt sudo apt-get clean du -sh ~/.cache/thumbnails rm -rf ~/.cache/thumbnails/* ``` ### Postgres ```bash # --- если размер тома postgresql большой, то заходим в БД и смотрим размер # каждой существующей БД. При необходимости удаляем postgres=# SELECT pg_size_pretty(pg_database_size('esint_fcs')); postgres=# drop database esint_fcs; postgres=# \q ``` ## Монтирование ### Mount Block Device ```bash # --- отображаем блочные устройства lsblk # --- разметка sudo cfdisk /dev/vdb # --- записываем ФС sudo mkfs.ext4 /dev/vdb1 # --- монтируем sudo mount /dev/vdb1 /opt # --- автомонтирование # --- смотрим ID блока sudo blkid # --- корректируем fstab sudo vim /etc/fstab # add: # UUID=id-from-blkid /opt ext4 defaults 0 0 ``` ### Mount Linux Directory pc1 - машина на которую монтируется pc2 - удаленная машина, на которой хранится контент ```bash # --- pc2 sudo apt install openssh-server # --- pc1 sudo apt-get install sshfs # директории должны существовать # sshfs ЧТО КУДА sshfs zoid@192.168.1.67:/home/zoid/projects/pi ~/mnt/pi # --- pc1 # --- размонтирование sudo umount ~/mnt/pi ``` ### Mount Windows Share Монтирование Windows Share Устанавливаем необходимые пакеты ```bash sudo apt install cifs-utils ``` Создаем файл с Windows-пользователем и паролем, например. */home/user/.smbcredentials* ``` username=windows-username password=windows-password ``` Команда монтирования ```bash sudo mount -t cifs //WINSRV/WINFOLDER /local/path/ -o credentials=/home/user/.smbcredentials ``` Команда размонтирования ```bash sudo umount /local/path ``` Автоматическое монтирование через */etc/fstab* ``` # /etc/fstab ... # windows share //WINSRV/WINFOLDER /local/path/ cifs credentials=/home/user/.smbcredentials 0 0 ``` Если через *fstab** авто-монтирование не работает (например, в AltLinux) и ресурс монтируется только при выполнении команды `mount -a`, то можно попробовать [так](https://www.linuxquestions.org/questions/slackware-14/why-is-fstab-entry-not-automounting-4175598739/) ```bash # создаем новый файл # vim /etc/NetworkManager/dispatcher.d/mount-nas.sh #!/bin/sh -efu /bin/mount -a exit $? ``` Перезапускаем систему ## NFS ```bash # --- install the NFS Common client sudo apt-get install nfs-common # --- mount the shared folder from the host to a mount folder on the client sudo mount serverIP:/exportFolder_server /local/folder # sudo mount 10.0.100.216:/c/PUBLIC/k8s-data/ ~/nas ``` ## Как это сделать? ### Move Home Directory to Another Device Link: https://help.ubuntu.com/community/Partitioning/Home/Moving ### Create / Change Swap [link](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04) Проверяем наличие swap ```bash sudo swapon --show # или free -h ``` Проверяем наличие свободного пространства ```bash df -h ``` Если файл существует, удаляем его ```bash sudo swapoff /swapfile sudo rm /swapfile ``` Создаем swap-файл ```bash sudo fallocate -l 2G /swapfile ls -lh /swapfile ``` Активируем swap-файл ```bash sudo chmod 600 /swapfile ls -lh /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo swapon --show free -h ``` Делаем swap-файл постоянным ```bash sudo cp /etc/fstab /etc/fstab.bak echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab ``` Настраиваем swap ```bash cat /proc/sys/vm/swappiness # 60 sudo sysctl vm.swappiness=10 # vm.swappiness = 10 sudo vim /etc/sysctl.conf # /etc/sysctl.conf # добавляем в конец файла # vm.swappiness=10 cat /proc/sys/vm/vfs_cache_pressure # 100 sudo sysctl vm.vfs_cache_pressure=50 # vm.vfs_cache_pressure = 50 sudo vim /etc/sysctl.conf # /etc/sysctl.conf # добавляем в конец файла vm.vfs_cache_pressure=50 ```
