Danyas
Участник
- Сообщения
- 2,173
- Реакции
- 1,072
Для этого нужно:
1. Руки (желательно хотя бы одну прямую)
2. Возможно понадобиться голова (одной будет достаточно)
3. Доступ к консоли
4. Crontab
5. find
6. Сервер с tv_autorecord 1. Путь - /home/server/
7. Веб-сервер. Путь - /var/www/danyas.pp.ua/
Первое что нужно сделать - автоматически перенести демки в папку.
Это можно сделать с помощью такой команды.
Если всё работает - прописываем в crontab (автоматизируем)
Ждем и ловим профиты, можно поставить чайник, так как основная работа сделана.
Сжатие демок
Оффтоп
Это экономит место в ДВА раза, так как коеф. сжатия около 50%
Для этого используем набор функций как из первого действия:
Теперь у нас демки сами загружаются и запаковываются максимально простым способом.
Авто-удаление демок
Тут я думаю комментировать нечего, команда rm -f принудительно удаляет файл.
Автор - Danyas
Специально для hlmod.ruhlmod.ru
1. Руки (желательно хотя бы одну прямую)
2. Возможно понадобиться голова (одной будет достаточно)
3. Доступ к консоли
4. Crontab
5. find
6. Сервер с tv_autorecord 1. Путь - /home/server/
7. Веб-сервер. Путь - /var/www/danyas.pp.ua/
Первое что нужно сделать - автоматически перенести демки в папку.
Это можно сделать с помощью такой команды.
PHP:
find /home/server/cstrike -name *.dem -type f -mmin +1 -exec mv {} /var/www/danyas.pp.ua/demos/ {} \;
Важно что бы папка /home/server/cstrike была уже создана!
- find - команда для поиска
- name *.dem - поиск файлов с маской *.dem
- type f - выбираем тип поиска: f (файл)
- mmin +1 - время последнего изменения файла больше 1-й минуты
- exec mv {} /var/... - выполнение mv (перемещения) {} (найденные файлы) и папка в которую мы демки заливаем.
Если всё работает - прописываем в crontab (автоматизируем)
PHP:
*/5 * * * * find /home/server/ -name *.dem -type f -mmin +1 -exec mv {} /var/www/danyas.pp.ua/demos/ {} \;
*/5 * * * * - выполнение данной команды каждых пять минут
Ждем и ловим профиты, можно поставить чайник, так как основная работа сделана.
Если он у вас есть рекомендую использовать "загрузчик демок"
PHP:
new bool:g_bIsRecording = false;
#define DEMOPATH "/var/www/danyas.pp.ua/demos/"
#define DEMOPREFIX "autodemo"
public Plugin:myinfo = {name = "Source.TV Recorder",author = "Danyas"}
public OnPluginStart(){StopRecord();CheckStatus();}
public OnMapEnd(){StopRecord();}
public OnClientPutInServer(client){CheckStatus();}
public OnClientDisconnect_Post(client){CheckStatus();}
public CheckStatus(){if(GetClientCount(true) >= 2){StartRecord();}else if(g_bIsRecording){StopRecord();}}
public StartRecord()
{
if(!g_bIsRecording)
{
decl String:sTime[32], String:sMap[32];
FormatTime(sTime, sizeof(sTime), "%Y-%m-%d_%H.%M", GetTime());
GetCurrentMap(sMap, sizeof(sMap));
ServerCommand("tv_record %s%s-%s-%s.dem", DEMOPATH, DEMOPREFIX, sTime, sMap);
PrintToServer("Recording to %s%s-%s-%s.dem", DEMOPATH, DEMOPREFIX, sTime, sMap);
g_bIsRecording = true;
}
}
public StopRecord(){ServerCommand("tv_stoprecord");g_bIsRecording = false;}
Сжатие демок
Оффтоп

Это экономит место в ДВА раза, так как коеф. сжатия около 50%
Для этого используем набор функций как из первого действия:
PHP:
*/5 * * * * find /var/www/danyas.pp.ua/demos/ -name *.dem -type f -mmin +5 -exec zip -mj {}.zip {} \;
zip -m {}.zip {}
zip - команда сжатия. (возможно нужно будет установить отдельно)
параметр -m нужен для удаления файла который был успешно запакован
параметр -j нужен для этого.
{}.zip {} - трудно понять, да? На самом деле всё просто.
{} заменяется на название файла, например 1.dem
У нас получиться в итоге zip -m 1.dem.zip 1.dem - мы создаем архив 1.dem.zip и перемещаем туда файл 1.dem
Теперь у нас демки сами загружаются и запаковываются максимально простым способом.
Авто-удаление демок
PHP:
0 4 * * * find /var/www/danyas.pp.ua/demos/ -name *.zip -type f -mtime +14 -exec rm -f {} \;
Автор - Danyas
Специально для hlmod.ruhlmod.ru
Последнее редактирование: