示例#1
0
        public JsonResult Start(AntiVirus av)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            #region Проверяем поля
            if (AntiVirus.IsRun(0))
            {
                return(Json(new Text("Антивирус уже запущен")));
            }

            if (string.IsNullOrWhiteSpace(av.path))
            {
                return(Json(new Text("Укажите каталог для сканирования")));
            }

            if (!System.IO.File.Exists(av.php))
            {
                return(Json(new Text($"Отсутствует исполняемый файл '{av.php}'")));
            }
            #endregion

            #region Создаем команду
            StringBuilder comand = new StringBuilder();
            comand.Append($"--path={av.path} ");

            if (!string.IsNullOrWhiteSpace(av.skip))
            {
                comand.Append($"--skip={av.skip} ");
            }

            if (!string.IsNullOrWhiteSpace(av.scan))
            {
                comand.Append($"--scan={av.scan} ");
            }

            comand.Append($"--mode={(av.mode == 1 ? 1 : 2)} ");
            comand.Append($"--memory={av.memory}M ");
            comand.Append($"--size={av.size}K ");
            comand.Append($"--delay={av.delay} ");
            #endregion

            // Имя отчета
            string report = $"{AntiVirus.name}_{AntiVirus.vers}_{DateTime.Now.ToString("HH-mm_dd-MM-yyy")}{av.path.Replace("/", "_-_")}";

            //
            Trigger.OnStart(("0", report));

            // Запускаем процесс bash
            Bash bash = new Bash();
            bash.Run($"{av.php} {Folders.AV}/ai-bolit.php {comand.ToString()} --progress={Folders.AV}/progress_id-0.json --report={Folders.ReportsAV}/{report}.html >/dev/null 2>/dev/null &");
            bash.Run("sleep 3");

            // Отдаем результат
            return(Json(new TrueOrFalse(true)));
        }
示例#2
0
        public JsonResult Stop(int Id = 0)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            if (AntiVirus.IsRun(Id))
            {
                Bash   bash = new Bash();
                string pid  = bash.Run($"ps ux | grep \"/av/ai-bolit.php\" | grep \"/progress_id-{Id}.json\" " + " | grep -v \"grep\" | awk {'print $2'} | head -n 1");
                if (!string.IsNullOrWhiteSpace(pid))
                {
                    bash.Run($"kill -9 {pid}");
                }

                System.IO.File.Delete($"{Folders.AV}/progress_id-{Id}.json");
            }

            return(Json(new TrueOrFalse(true)));
        }