Довольно просто... больше не разделяйте /
и /usr
. Это бессмысленная головная боль. Если у вас есть раздел для всего, /
в любом случае будет почти пустой файловой системой. Объедините их в один.
Пример объединения /
в /usr
:
mount /dev/sda1 /mnt/root
mount /dev/sda2 /mnt/usr
cp -a /mnt/root/usr /mnt/usr/usr
mv /mnt/usr/* /mnt/usr/usr/
cp -a /mnt/root/. /mnt/usr/.
Наконец, измените командную строку на root =/dev/sda2
. Не забудьте соответствующим образом адаптировать /etc/fstab
.
-121--289148-
rc.local
. Вы используете CentOS 7. У вас есть systemd. /etc/rc.local
является двойным механизмом обратной совместимости в systemd, поскольку он является механизмом обратной совместимости для механизма, который был сам механизмом совместимости в System 5 rc
. И как показано беспорядком в AskUbuntu вопрос гиперссылка ниже, использование /etc/rc.local
может пойти ужасно неправильно. Так что сделайте правильный системный сервисный блок.
Сначала создайте шаблонную единицу обслуживания . В качестве примера назовем его /etc/systemd/system/custom-readahead @ .service
:
[Unit] Documentation=https://unix.stackexchange.com/questions/247436/ Description=Set custom read-ahead on storage device %I BindsTo=dev-%i.device [Service] Type=oneshot ExecStart=/sbin/blockdev --setra 128 /dev/%I
По прибытии соответствующих устройств организуем запуск этого сервисного блока менеджером устройств plug-and-play (udev). Ваше правило, которое вам придется адаптировать к вашим конкретным потребностям, будет выглядеть примерно так:
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ENV{SYSTEMD_WANTS}="custom-readahead@%k"
SYSTEMD _ WANTS
настроек заставляет udev запустить именованную службу - экземпляр шаблона против устройства % k
. Затем эта служба запускает blockdev
.
Очевидно, есть другой способ сделать это, который опирается на способность удева устанавливать эти настройки напрямую. Для этого не требуется системное шаблонное устройство или создаваемые службы. Вместо этого просто проинструктируйте udev прямо в его правиле:
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="128"
Обратите внимание на разницу между = =
и =
.
Нигде нет rc.local
, как и путь.
-121--122965-
Вы определенно можете хранить изображения с метаданными (например, тэги) в базе данных. Это довольно тривиальная вещь. Это не решит вашу проблему, хотя, как вы должны будете посетить каждый картинный в вашей коллекции, чтобы классифицировать их (назначить тэги к нему, такие как кошка, осень, вода и т.д.).
Если все, что вам действительно нужно знать, это сколько лиц есть в каждой фотографии, вы можете проверить библиотеку OpenCV (чтобы сделать обнаружение лиц, а не распознавание лиц, так как все, что вам нужно, это число).
Если вы находитесь после более общей классификации, такой как объекты, животные, события - вам понадобится гораздо более сложное решение из области машинного обучения (проверьте Кибулу для этого).
Практически, хотя вам, скорее всего, будет быстрее пройти через вашу коллекцию из нескольких тысяч картин и назначить тэги вручную с помощью какого-либо приложения диспетчера картин (Picasa раньше была в состоянии сделать это), а позже сделать поиск по тэгам.
Согласно руководству ffmpeg
, опция -t
— это продолжительность , а не время окончания .
Я думаю, вы ищете вариант -to
:
-to position (output)
Stop writing the output at position. position must be a time duration specification, see the Time
duration section in the ffmpeg-utils(1) manual.
-to and -t are mutually exclusive and -t has priority.
Итак, в вашем случае команда будет:
ffmpeg -i /home/nantembo/VideoPerl/1.mp4 -f avi -vcodec copy -acodec copy -ss 0:14:47 -to 0:58:55 /home/nantembo/VideoPerl/2.mp4