mkdir -p ~/bin/clock/2 Создаем файл play.sh в директории ~/bin/. Записываем в него три строчки.
#!/bin/bash export XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/mplayer $13 Изменяем права (далем файл исполняемым)
chmod u+x ~/bin/play.sh4 В каталог ~/bin/clock/ записываем "озвучку" — mp3-файлы. Архив уже прилагается. 4.1 Вот что в архиве
xuser@mbs:/tmp/clock$ ls 0.mp3 11.mp3 13.mp3 15.mp3 17.mp3 19.mp3 21_30.mp3 22.mp3 3.mp3 6.mp3 8.mp3 play.sh 10_30.mp3 12_30.mp3 14_30.mp3 16_30.mp3 18_30.mp3 1.mp3 21_57.mp3 23_30.mp3 4.mp3 7_30.mp3 9_30.mp3 10.mp3 12.mp3 14.mp3 16.mp3 18.mp3 20_30.mp3 21.mp3 23.mp3 5.mp3 7.mp3 9.mp3 11_30.mp3 13_30.mp3 15_30.mp3 17_30.mp3 19_30.mp3 20.mp3 22_30.mp3 2.mp3 6_30.mp3 8_30.mp3 crontab.txt xuser@mbs:/tmp/clock$5 В файл кронтаба (команда crontab -e) вставляем строчки
00 00 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/0.mp3 00 01 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/1.mp3 00 02 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/2.mp3 . . . 00 22 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/22.mp3 30 22 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/22_30.mp3 00 23 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/23.mp3 30 23 * * * /home/xuser/bin/play.sh /home/xuser/bin/clock/23_30.mp36 Всё. Ну я надеюсь вам понятно что «три точки» на 5 шаге нужно заменить на соответствующие время и пути к mp3-файлам. А также xuser надо поменять на имя вашей учетной записи.
class EndPageRndContent {
private $rnd;
private $rnd_obj;
public function __construct() {
$this->rnd = rand(1, 6);
switch ($this->rnd) {
case 1: //пользователи
$this->rnd_obj = new RndUsers(4);
break;
case 2: //посты
$this->rnd_obj = new RndPosts(2);
break;
case 3: //посткоменты
$this->rnd_obj = new RndPostComs(1);
break;
case 4: //картинки
$this->rnd_obj = new RndFotos(4);
break;
case 5: //фотокоменты
$this->rnd_obj = new RndFotoComs(1);
break;
case 6: //фотоалбомы
$this->rnd_obj = new RndAlbums(4);
break;
default: //ВСЕГДА В КЕЙСАХ ...!!!
echo 'rnd_err def exit';
$e = new Err();
$e->logerr_exit('rnd_err def exit ' . __METHOD__ . ' in ' . __FILE__ . ' on ' . __LINE__);
break;
}
}
}
Вчера переписал:class RndContentEndPage {
private $rnd; //какой нужно выбирать
private $cou_rnd_obj; //количество в масссиве -1 (нум с нуля)
private $selected_rnd_obj; //выбран из массива
private $how_show_rnd_cont; //сколько элементов показывать
private $rnd_obj;
private $tmp_wsh;
private $rnd_ar = ['RndUsers', 'RndPosts','RndPostComs','RndFotos','RndFotoComs',
'RndAlbums','RndComPics'];
public function __construct() {
$this->cou_rnd_obj = count($this->rnd_ar) - 1;
$this->rnd = rand(0, $this->cou_rnd_obj); //нумерац с 0
$this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
$this->how_show_rnd_cont = rand(1, 4);
$this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
}
}Сегодня еще раз переписываю...class RndContentEndPage {
private $rnd; //какой нужно выбирать
private $cou_rnd_obj; //количество в масссиве -1 (нум с нуля)
private $selected_rnd_obj; //выбран из массива
private $how_show_rnd_cont; //сколько элементов показывать
private $rnd_obj;
private $tmp_wsh;
private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
'RndAlbums', 'RndFotos', 'RndComPics'];
public function __construct() {
$this->cou_rnd_obj = count($this->rnd_ar) - 1;
$this->rnd = rand(0, $this->cou_rnd_obj); //нумерац с 0
$this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
$this->set_how_show_rnd_cont();
$this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
}
private function set_how_show_rnd_cont() { //лучше несколько прсостых условий, чем какая-то хрень
if ($this->rnd < 2) {
$this->how_show_rnd_cont = 1;
}
if ($this->rnd == 2 ) {
$this->how_show_rnd_cont = 2;
}
if ($this->rnd > 2 ) {
$this->how_show_rnd_cont = 4;
}
}
}Добавил я$this->set_how_show_rnd_cont(); //в зависимости от того какой случайный контент показывать этой строчкой устанавливается количество случайного контента для вывода БЫЛО $this->how_show_rnd_cont = rand(1, 4); //от 1 до 4 элементовЕсли вывод 4 картинок или 4 фотоальбомов смотрится более-менее, то вывод 4 постов или 4 комментов выглядит уже не очень красиво (один коммент может быть на две(!) страницы монитора). Раньше в скобках было указано сколько нужно случайного контента выводить.
case 1: //пользователи
$this->rnd_obj = new RndUsers(4);
break;
case 2: //посты
$this->rnd_obj = new RndPosts(2);
break;
case 3: //посткоменты
$this->rnd_obj = new RndPostComs(1);
break;
case 4: //картинки
$this->rnd_obj = new RndFotos(4);
break;
case 5: //фотокоменты
$this->rnd_obj = new RndFotoComs(1);
break;
case 6: //фотоалбомы
$this->rnd_obj = new RndAlbums(4);
break;
private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
'RndAlbums', 'RndFotos', 'RndComPics', 'СлучайныйНовыйКонетен'];
balooctl — управляет всем индексированием baloo_file_extractor — каким то хандибубером извлекает метаданные из файлов baloosearch — для поиска файлов по всему индексу, или в конкретной директории baloo_file — наверное используется для обработки одного файла. Детально не вникал. Но в сети полно жалобливых жалоб, на тему того что этот процесс грузит систему на 100%. balooshow — какая-то хрень, которая выводит какую-то информацию о наличии каталогов и файлов в индексе (количество строк, какой-то номер и еще что-то) Афигенно я опьясняю, да?Вы также можете заметить файл baloo_filemetadata_temp_extractor, но он, НАВЕРНОЕ, предназначен для показа метанформации на панели файлового менеджера.Этот файл не из этого пакета. Далее… Стоить обратить внимание на balooctl. Запустив команду с параметром -h мы увидим:
balooctl -h
Использование: balooctl [параметры] command status enable disable start stop restart
suspend resume check index clear config monitor indexSize
Параметры:
-f, --format <format> Output format <json|simple|multiline (default)>.
Only applies to "balooctl status <file>"
-v, --version Отобразить информацию о версии.
-h, --help Отобразить эту справку.
Аргументы:
command Команда для выполнения.
status Вывести состояние программы индексирования файлов.
enable Включить индексирование файлов.
disable Выключить индексирование файлов.
start Запустить индексирование файлов.
stop Остановить индексирование файлов.
restart Перезапустить индексирование файлов.
suspend Приостановить индексирование файлов.
resume Возобновить индексирование файлов.
check Найти непроиндексированные файлы и проиндексировать
их.
index Проиндексировать указанные файлы.
clear Забыть указанные файлы.
config Изменить настройку Baloo.
monitor Наблюдать за индексированием файлов.
indexSize Показать объём дискового пространства, используемого
индексом.Не знаю стоит ли мне повторять то что так должно быть понятно(?)
Остановлюсь лишь на некоторых важных вещах:
Чтобы остановить индексирование (!!!ЕСЛИ ПРОГРАММА АКТИВНО РАБОТАЕТ!!!), сначала выполните команду
balooctl suspend и только потом balooctl stopПочему так? Потому что при balooctl stop (!!!ЕСЛИ ПРОГРАММА АКТИВНО РАБОТАЕТ!!!), процессы продолжают работать.Потом приходится искать процесс в памяти и убивакивать его или просто без поиска процесса стрельнуть командой killall baloo_file. Для наблюдения за текущим индексированием выполните команду
balooctl monitorДля полного запрета автоматического старта индексирования можете выполнить
balooctl disableВсе это хорошо, но как решить проблему с большой и не нужной папкой /home/user/.local/share/baloo/ ??? Щас еще чуток теории, а потом всё станет понятно. Обратим внимание на опцЫю config. А точнее на
balooctl config list Список параметров конфигурации, которые можно просмотреть: hidden Следует ли Baloo индексировать скрытые файлы и папки contentIndexing Следует ли Baloo индексировать содержимое файлов. includeFolders Список папок, которые Baloo должен индексировать excludeFolders Список папок, которые Baloo не должен индексировать excludeFilters Список фильтров, используемых для исключения файлов из процесса индексирования excludeMimetypes Список типов файлов, используемых для исключения файлов из процесса индексирования.Ну вот в принципе и всё. Дальше можете без подсказок понять что к чему и зачем, но… Да, есть еще одно но: Индексировать скрытые файлы\папки оно не хочет (по состоянию на конец июля 2019), а также имеются некоторые баги-непонятки. В итоге отрываем файл конфигурации
balooctl config ls excludeFolders /home/user/.cache /home/user/.local/share/baloo /home/user/.mozilla хотя конечно это наверное тупо, запрещать индексирование в скрытых директориях если оно и так не работает (в скрытых!) /home/user/NB_8.2 /home/user/VirtualBox VMs /home/user/books /home/user/dnl /home/user/netbeans-8.2А индексируется вот это:
balooctl config ls includeFolders /home/user /var/wwwПри этом если вы запретили индексацию монтируемого раздела диска, но хотите включить в индекс какую-то директорию на этом разделе, то добавив путь к директории в конфигфайле, она будет индексироваться. Ну и понятное дело, ненужные картинки, медиафайлы можно
balooctl config ls excludeFiltersВсе настройки удобнее задавать, редактируя конфигфайл. У меня размер папки с структурированными данными
baloosearch Использование: baloosearch [параметры] запрос Параметры: -l, --limit <ограничение> Максимальное число результатов поиска. -o, --offset <смещение> Смещение в списке результатов поиска. -t, --type <название_типа> Тип данных для поиска -d, --directory <каталог> Ограничить поиск указанным каталогом. -h, --help Отобразить эту справку. -v, --version Отобразить информацию о версии. Аргументы: запрос Список слов, которые следует искать.Ааа, и еще одно: Если когда-то индексация будет применима к скрытым файлам\папкам, то наверное стоит исключить путь ~/.local/share/baloo/ из индексации. Почему так не хочу объяснять :). И напоследок: команда считающая занимаемое место
user@mbs:~$ du -hsc .local/share/baloo/* 45M .local/share/baloo/index 4,0K .local/share/baloo/index-lock 45M итого user@mbs:~$Ну и еще рекомендую познакомиться с
--- /media/user/466/MEDIA
/
56,4 GiB [##########] /FILMS
40,1 GiB [####### ] /Video
3,0 GiB [ ] /Music
2,1 GiB [ ] /unsort
Эта консольная программа позволяет быстро оценить кто\что сколько занимает места в файловой системе.
Есть еще какая-то фигня тоже шототипа связанная с индексированием, но собирает она данные об установленных программах(?), называется xappian или xcapitan. Я ее убрал уже давно-давно, сразу же после установки. И сейчас я точно не помню что я делал.
Для примера показываю свой конфигфайл (обратите внимание на [Basic Settings] Indexing-Enabled=true [General] dbVersion=2 exclude filters=CMakeFiles,CVS,.obj,*.rej,*.gmo,.xsession-errors*,_darcs,lost+found,moc_*.cpp,*.vm*,lzo,*.swap,.uic,.moc,*.loT,autom4te,libtool,litmain.sh,*.o,__pycache__,*.m4,.hg,*.orig,*~,CTestTestfile.cmake,*.nvram,*.pyc,*.pc,*.tmp,.histfile.*,core-dumps,*.rcore,CMakeCache.txt,*.part,*.la,qrc_*.cpp,ui_*.h,*.omf,po,CMakeTmpQmake,.git,*.po,*.elc,.svn,cmake_install.cmake,conftest,.bzr,.pch,*.aux,*.class,*.lo,*.moc,*.csproj,confdefs.h,CMakeTmp,config.status,confstat,Makefile.am,*.mp3,*.mp4,*.avi,*.png,*.gif,*.jpg,*.jpeg exclude filters version=2 exclude folders[$e]=/media/user/60/,/media/user/466/,$HOME/dnl/,$HOME/books/,$HOME/NB_8.2/,$HOME/netbeans-8.2/,$HOME/.local/share/baloo/,$HOME/VirtualBox VMs/,$HOME/.cache/,$HOME/.mozilla/ first run=false folders[$e]=$HOME/,/var/www/ index hidden folders=false only basic indexing=false
xuser@mbs:~$ id uid=1000(xuser) gid=1000(xuser) группы=1000(xuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare) xuser@mbs:~$Вот что показыватся в виртуалбоксе, в окне настройки юсб: Решаем "проблему" командой
usermod -aG vboxusers xuserПосле этого нужно выйти из системы и снова зайти. НЕ ПЕРЕЗАГРУЗИТЬ комп, а
xuser@mbs:~$ id uid=1000(xuser) gid=1000(xuser) группы=1000(xuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),129(vboxusers) xuser@mbs:~$Запускаем virtualbox, смотрим в настройки юсб... и видимТеперь есть и юсб-флешка, и юсб-клавиатура, и юсб-мышка. Запускаем виртуальную машину и проверяем...
dpkg -i whdd_2.2+20160129-1~eugenesan~xenial1_amd64.deb Выбор ранее не выбранного пакета whdd. (Чтение базы данных … на данный момент установлено 257678 файлов и каталогов.) Подготовка к распаковке whdd_2.2+20160129-1~eugenesan~xenial1_amd64.deb … Распаковывается whdd (2.2+20160129-1~eugenesan~xenial1) … dpkg: зависимости пакетов не позволяют настроить пакет whdd: whdd зависит от smartmontools, однако: Пакет smartmontools не установлен. dpkg: ошибка при обработке пакета whdd (--install): проблемы зависимостей — оставляем не настроенным При обработке следующих пакетов произошли ошибки: whdd... получаем ошибку. Доустанавливаем не достаюшие компоненты...
apt install smartmontools Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Предлагаемые пакеты: gsmartcontrol smart-notifier Следующие НОВЫЕ пакеты будут установлены: smartmontools Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Установлено или удалено не до конца 1 пакетов. Необходимо скачать 464 kB архивов. После данной операции объём занятого дискового пространства возрастёт на 1.774 kB. Пол:1 http://ua.archive.ubuntu.com/ubuntu bionic/main amd64 smartmontools amd64 6.5+svn4324-1 [464 kB] Получено 464 kB за 1с (472 kB/s) Выбор ранее не выбранного пакета smartmontools. (Чтение базы данных … на данный момент установлено 257682 файла и каталога.) Подготовка к распаковке …/smartmontools_6.5+svn4324-1_amd64.deb … Распаковывается smartmontools (6.5+svn4324-1) … Обрабатываются триггеры для ureadahead (0.100.0-21) … Настраивается пакет smartmontools (6.5+svn4324-1) … Created symlink /etc/systemd/system/multi-user.target.wants/smartd.service → /lib/systemd/system/smartd.service. Обрабатываются триггеры для systemd (237-3ubuntu10.24) … Обрабатываются триггеры для man-db (2.8.3-2ubuntu0.1) … Настраивается пакет whdd (2.2+20160129-1~eugenesan~xenial1) … Обрабатываются триггеры для ureadahead (0.100.0-21) …Ну в принципе и всё. Можно эту программу установить на загрузочную флешку и загрузившись с флешки поверять диски. Но для установки на флешку, вам необходимо иметь загрузочную флешку с Линуксом. Загрузившись с флешки так же само устанавливаете эту програмулину.
Пример работы: У меня есть полуживой старичок на 500 гб...