Автозагрузка / архивация / удаление демок без SM

Тема в разделе "Linux", создана пользователем Danyas, 27 июн 2015.

  1. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.730
    Симпатии:
    461
    Для этого нужно:
    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 +-exec mv {}  /var/www/danyas.pp.ua/demos/ {} \;
    Важно что бы папка /home/server/cstrike была уже создана!

    Если всё работает - прописываем в crontab (автоматизируем)
    PHP:
    */* * * * find /home/server/ -name *.dem -type f -mmin +-exec mv {}  /var/www/danyas.pp.ua/demos/ {} \;
    Ждем и ловим профиты, можно поставить чайник, так как основная работа сделана.
    Если он у вас есть рекомендую использовать "загрузчик демок"
    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(sTimesizeof(sTime), "%Y-%m-%d_%H.%M"GetTime());
            
    GetCurrentMap(sMapsizeof(sMap));
            
    ServerCommand("tv_record %s%s-%s-%s.dem"DEMOPATHDEMOPREFIXsTimesMap);
            
    PrintToServer("Recording to %s%s-%s-%s.dem"DEMOPATHDEMOPREFIXsTimesMap);
            
    g_bIsRecording true;
        }
    }
    public 
    StopRecord(){ServerCommand("tv_stoprecord");g_bIsRecording false;}


    Сжатие демок
    Оффтоп
    Это экономит место в ДВА раза, так как коеф. сжатия около 50%

    Для этого используем набор функций как из первого действия:
    PHP:
    */* * * * find /var/www/danyas.pp.ua/demos/ -name *.dem -type f -mmin +-exec zip -mj  {}.zip {} \;
    Теперь у нас демки сами загружаются и запаковываются максимально простым способом.

    Авто-удаление демок
    PHP:
    0 4 * * * find /var/www/danyas.pp.ua/demos/ -name *.zip -type f -mtime +14 -exec rm -{} \;
    Тут я думаю комментировать нечего, команда rm -f принудительно удаляет файл.


    Автор - Danyas
    Специально для hlmod.ru
     
    Последнее редактирование: 14 июл 2015
    jonasltu, pracc и artushonok нравится это.
  2. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Мне кажется нет смысла переносить демки, лишняя нагрузка/процессы/телодвижения и т.д.
    Проще сделать сим линк
    Код:
    ln -s /home/servers/server_1/cstrike/demos /home/www/demos/files/server_1
    
    Добавлено через 49 минут
    скрипт сжатия не очень хороший.
    в архив добавляется полный каталог расположения демки.
    вот путь из скрипта (открыл проводиком)
    Код:
    C:\Users\HooLIGUN\Desktop\mix_2015-06-27-1702-de_cpl_strike.dem.zip\var\www\hooligun\data\steam\servers\mix1\cstrike\demos\mix
     
    Последнее редактирование: 27 июн 2015
    TWRP нравится это.
  3. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.730
    Симпатии:
    461
    У меня вот так вот

    [​IMG]
    Может что-то упустил.

    Раньше было через bzip2, но я понял что он не очень
     
  4. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
  5. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.730
    Симпатии:
    461
    Параметр j вроде фиксит
     
  6. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.730
    Симпатии:
    461