[СКРИПТ] Увеличиваем место на диске, путем создания линков на vpk

Тема в разделе "Полезные статьи и материалы", создана пользователем AS TRO, 15 окт 2016.

  1. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Продолжение этой темы: Экономия места на своем сервере на базе Linux
    Но мой скрипт сам понимает, какое количество файлов ему переносить и делать замену, если файл vpk у сервера был обновлен. Так же, минимальный код и всего 2 параметра при запуске файла. Все гениальное, просто.

    Описание:
    Обычный bash скрипт, написанный лично мной, который позволит переносить .vpk файлы в отдельную папку и делать с этих файлов ЛИНК в папку с игровым сервером, что позволит очень сильно увеличить дисковое пространство, если у вас под 15 серверов.

    Суть такова:
    ss+(2016-10-15+at+01.37.52).png

    Пример работы скрипта:
    Эмитировал, что в папке с контентом(где у меня хранятся основные vpk) нету файла "cstrike_pak_000.vpk", результат:
    ss+(2016-10-15+at+04.11.24).png
    Все недостающее успешно перенеслось и линк создался.
    ____
    Эмитировал, что у меня в папке контента(где лежат основы vpk) два файла испортились(устарели или размер не совпадает с файлами после обновления), вот результат:
    ss+(2016-10-15+at+06.25.45).png

    Пример результата:
    У меня два сервера ксс(на скрине только ДД2 онли), и в обоих случаях у vpk файлов серверов идет на контент
    ss+(2016-10-15+at+04.00.19).png ss+(2016-10-15+at+04.01.25).png
    Ксго серверов у меня 5 штук, тоже самое: во всех случаях у vpk файлов серверов идет на контент
    ss+(2016-10-15+at+04.01.04).png ss+(2016-10-15+at+04.01.21).png

    Как использовать скрипт?
    ss+(2016-10-15+at+04.23.00).png

    Не забудьте выставить chmod u+x права на файл new_create_link.sh, перед запуском.

    Обновил скрипт 17.10.2016, спасибо @Tallanvor, за замечания.

    PS, Данный скрипт у меня запускается автоматически после обновления сервера.
     

    Вложения:

    Последнее редактирование: 17 окт 2016
    CAH4E3, SenatoR, White Wolf и 3 другим нравится это.
  2. pracc

    pracc

    Сообщения:
    480
    Симпатии:
    128
    Пробовал кто нибудь?
     
  3. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    @pracc, Я только что попробовал ;DD У меня на моих серверах стоит такая система.. PS прочти)
    Да и я его сам только что закончил писать, так что можешь стать первым)
     
    pracc нравится это.
  4. Grey83

    Grey83

    Сообщения:
    351
    Симпатии:
    101
    а почему нельзя с одной папки запустить несколько серверов, а не делать копии?
    у разных серверов разные наборы плагинов?
     
  5. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Именно
     
  6. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.098
    Симпатии:
    314
    @AS TRO, от меня, как линуксоида, маленький совет:
    используй что-то наподобие shellcheck при написание таких скриптов - меньше шансов, что сядешь в лужу при определённом положении звёзд.
     
  7. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    @Tallanvor, спасибо конечно :) но опиши хотяб свой совет одним примером или поподробнее, что именно делать :)
     
  8. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.098
    Симпатии:
    314
    @AS TRO, вообще, конкретно в этом случае, сходу не соображу, что именно может пойти не так.
    Но вообще, те же пути лучше брать в двойные кавычки всегда, если идёт обращение к конкретному файлу.

    ShellCheck – shell script analysis tool - закинь свой скрипт сюда, и посмотри на замечания.
     
  9. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    @Tallanvor, "finds bugs in your shell scripts."
    Нее, у меня скрипт маленький, но функциональный, так что в данном случае все будет спокойно т гладко) я уже все варианты проверил на скрипте, все работает правильно как часы) но за совет спасибо большое :)
     
  10. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.098
    Симпатии:
    314
    @AS TRO, ок.
    А зачем ты через жопку делаешь проверку
    Код:
    find ! -type d
    если утиль умеет искать файлы?
    Код:
    find -type f
    Точно так же, ты ищешь .vpk
    Они все находятся в корне сервера, глубже их нет.
    Зачем ты заставляешь утилю сканить ВСЕ директории?
    Код:
    find -mindepth 1
    Тебе ведь достаточно просканить целевую:
    Код:
    find -maxdepth 1
     
  11. Grey83

    Grey83

    Сообщения:
    351
    Симпатии:
    101
    Последнее редактирование: 16 окт 2016
  12. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.098
    Симпатии:
    314
    и да, мое любимое...
     
    AS TRO нравится это.
  13. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Спасибо, учту) я хоть и в линуксе не профан, но в bash еще далеко до профи) обновлю скрипт)
    --- Добавлено позже ---
    М
    мне данный способ не подойдет под гмод сервера. Ибо там СМ нельзя ставить(lua только). А с ксс и ксго не хочу все иметь в одной папке, уж больно не удобно для меня. Как "чутка" перфекционизма, чтобы было все на своих местах)
     
  14. Reg1oxeN

    Reg1oxeN

    Сообщения:
    85
    Симпатии:
    26
    даже под гмод нет смысла линковать впк
    Mounting Content on a DS - Garry's Mod
     
  15. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Контенты игр и так прекрасно стоят для всех 5-6 серверов гмода в одной папке. А vpk стоит того, ибо на это от самих игровых серверов vpk наберется на гига 2 точно)
    --- Добавлено позже ---
    @Reg1oxeN, и да, цитатой
    Я имел ввиду, что sourcemod и meta mod никак не работает совместно с гмодом, и сделать запуск сразу нескольких игровых серверов из одной папки не получится.
     
  16. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.098
    Симпатии:
    314
    @AS TRO, замени в инструкции chmod 777 на chmod u+x
     
    AS TRO нравится это.
  17. Grey83

    Grey83

    Сообщения:
    351
    Симпатии:
    101
    Интересно как это можно сделать? :biggrin:
    Это же разные приложения и у них всех свои файлы (не говоря уж о совместимости плагинов).

    Собственно линками ты делаешь всё то же самое, только обновлять сервера придётся каждый отдельно (ну кроме vpk).
     
  18. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Чуток не так выразился. Но я думаю, суть ты понял
     
  19. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.060
    Симпатии:
    345
    Говоря честно, решение всей проблемы вот такое: sm_basepath
    Ну и как вариант еще
     
    Grey83 нравится это.
  20. AS TRO

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
    Спасибо большое за краткие наводки. Не сарказм... Учту на будущее :)