Ubuntu questions and answers#
Running a script as a service#
Let's say you have a script which normally you run using ./myscript.sh
(contains java run command). You want to make it as a service, so it runs automatically after machine restart and etc.
You need to write systemd service file.
Simplest script looks like this:
[Unit]
Description=Virtual Distributed Ethernet
[Service]
ExecStart=/usr/bin/YOUR_SCRIPT
[Install]
WantedBy=multi-user.target
Also you need to execute daemon-reload after creating new service.
Schedule a nightly reboot#
Edit crontab:
The first time you might have to choose your preferred editor (like nano).
Generate your cron with crontab generator and add restart command right after it:
at the bottom. Explanation:
so it would announce the reboot every day at 4:00am, then reboot 5 minutes later (at 4:05am).
Ctrl+X, Y, Enter should get you out of crontab (if using nano)
Note
you might have to run crontab -e
as root, because shutdown needs root. crontab -e
opens a file in /tmp
instead of the actual crontab so that it can check your new crontab for errors. If there are no errors, then your actual crontab will be updated.
Removing old or unused docker images#
Docker 1.13: PR 26108 and commit 86de7c0 introduce a few new commands to help facilitate visualizing how much space the docker daemon data is taking on disk and allowing for easily cleaning up "unneeded" excess.
docker system prune will delete all dangling data (containers, networks, and images). You can remove all unused volumes with the --volumes
option and remove all unused images (not just dangling) with the -a
option.
You also have: - docker container prune - docker image prune - docker network prune - docker volume prune
For unused images, use docker image prune -a
(for removing dangling and ununsed images).
Warning: 'unused' means "images not referenced by any container": be careful before using -a
.
As illustrated in A L's answer, docker system prune --all
will remove all unused images not just dangling ones... which can be a bit too much.
Cleaning your server#
Анализируем занятое дисковое пространство Для анализа занимаемого пространства на диске можно использовать команду:
Данная команда выведет заполненность каждого раздела на диске. Нас интересует корневой раздел (/), именно его и стоит учитывать во время анализа занимаемого пространства.
Для более продвинутого анализа пространства можно использовать утилиту ncdu, у которой есть интерфейс, напоминающий чем-то утилиту WinDirStat, которая позволит вам гулять по директориям вашего сервера и смотреть файлы, которые занимают больше всего места.
Warning
Будьте осторожны при ручном удалении файлов!
Installation#
Note
Если у вас нет команды sudo или вы находитесь под учеткой root, писать ее не нужно
``bash sudo apt install ncdu
### Usage
!!! note
Данная команда выполнит сканирование в директории /. Если у вас нет команды sudo или вы находитесь под учеткой root, писать ее не нужно
``bash
sudo ncdu /
После непродолжительного сканирования утилита выведет список файлов и директорий, занимающих пространство на вашем диске, в порядке убывания.
Пространство проанализировали, что дальше?
Самая жирная директория обычно это /var, и для ее очистки есть несколько путей:
a) Очистка старых логов (/var/log)
В том случае, если у вас накопилось много логов, которые вам не нужны, вы можете выполнить команду удаления логов, встроенную в дистрибутив:
Вместо 2d вы можете указать любую величину, чтобы оставить логи, накопившиеся за последние <дней>d
b) Очистка файлов Docker (/var/lib/docker)
Если вы используете Docker и у вас накопилось большое кол-во ненужных образов (например, от отработки CI/CD пайплайнов), необходимо провести очистку Docker Engine, с помощью следующих команд:
- Удаление неиспользуемых образов
- Удаление неиспользуемых контейнеров
- Удаление неиспользуемых сетей
- Удаление неиспользуемых томов
- Удаление всех неиспользуемых объектов в Docker Engine
c) Очистка файлов Pterodactyl (/var/lib/pterodactyl)
Для владельцев игровых проектов
Файлы панели Pterodactyl крайне не рекомендуется удалять вручную, поскольку бэкенд панели "не заметит" удаление бэкапа, и оставит его висеть в панели, хотя он уже был удален.
Сделали очистку, но места все равно не хватает?
Удалите неиспользуемые пакеты (зависимости) с помощью вашего пакетного менеджера: