|
0 / 0 / 0
Регистрация: 24.12.2018
Сообщений: 3
|
|
Процессы запущенные вчера или ранее30.01.2020, 19:48. Показов 3887. Ответов 26
Метки нет (Все метки)
Хочу написать скрипт который выводит список пользователей (их логины, и ничего более), чьи процессы запущены вчера или ранее.
Думаю отсечь логины можно с помощью cut or awk, но вот большая проблема это с процессами.
0
|
|
| 30.01.2020, 19:48 | |
|
Ответы с готовыми решениями:
26
Qt приложение отображающее запущенные процессы Как просмотреть все запущенные процессы
|
|
0 / 0 / 0
Регистрация: 24.12.2018
Сообщений: 3
|
|
| 31.01.2020, 11:16 [ТС] | |
|
Спасибо большое, а можете пожалуйста рассказать что делает регулярное выражение в sed?
0
|
|
|
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
|
||||||
| 31.01.2020, 13:43 | ||||||
|
Ankodo,
2
|
||||||
|
|
|||||||||||
| 31.01.2020, 17:34 | |||||||||||
Сообщение было отмечено Ankodo как решение
Решение
Ankodo, Главная фишка в форматированном выводе времени старта процесса
в команде ps -o start. Если команды запущены сегодня то выводится время "HH:MM:SS" (часы:минуты:секунды) А если процессы стартовали вчерашним числом и ранее, то есть до 00:00 то формат вывода меняется на " Mmm dd" (абревиатура месяца и день) Я кстати допустила ошибку полагая что строка начинается не с пробела а с символа названия месяца. Регулярка в седе обрабатывает только те строки которые (в новом варианте) будут начинатся с пробела (с последующей абривиатурой месяца) ну и вырезает эту часть оставляя только имя владельца процесса
В моем распоряжении нет дивайса работающего продолжительное время, поэтому без проверки я помоему допустила еще одну ошибку, команда uniq -f1 может украсть часть нужного вывода в продакшн такая строчка
1
|
|||||||||||
|
|
||||||
| 31.01.2020, 19:39 | ||||||
Сообщение было отмечено Ankodo как решение
Решение
Kukstyler,
2
|
||||||
|
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
|
|
| 31.01.2020, 21:27 | |
|
nezabudka, я про фильтровку вообще забыл
0
|
|
|
0 / 0 / 0
Регистрация: 24.12.2018
Сообщений: 3
|
|
| 31.01.2020, 21:45 [ТС] | |
|
nezabudka
А как здесь мы отбираем то что было вчера или ранее? я понял что формат вывода меняется если это случилось до 00:00, и поэтому мы как-то через sed это делаем? Не по теме: я не могу найти как ответить на сообщение упомянув пользователя. HELP ME PLZ
0
|
|
|
|
||||||||||||||||||||||
| 31.01.2020, 22:21 | ||||||||||||||||||||||
|
Это легко фильтруется через изменение формата вывода. Мы фактически не проверяем саму дату, а фиксируем изменение формата. Именно изменение формата и дает нам возможность без явного сопоставления даты получать результат sed просто проверяет начинается ли строка с пробела, если да то он обрабатывает наш файл потому что он стартовал вчера или ранее и удаляет этот временной маркер оставляя имя владельца процесса Вот два примера вывода сегодняшнего процесса и вчерашнего
^ - начало строки а потом так
появляющемуся в формате времени в процессах запущенных днем ранее и более
1
|
||||||||||||||||||||||
|
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 831
|
||||||
| 03.02.2020, 04:08 | ||||||
|
nezabudka, а стак говорит вроде что правильнее lstart отфортматировать в ISO дату и уже сравнивать
https://unix.stackexchange.com... /ps-output
0
|
||||||
|
|
|||
| 03.02.2020, 08:44 | |||
|
skouzmine, Не вижу необходимости здесь что то сравнивать,
достаточно того что утилита ps дает возможность просто детерминировать необходимый временной интервал по изменению вывода формата. Результат работы вашей программы, удовлетворяет условию поставленной задачи?
0
|
|||
|
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,917
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 03.02.2020, 11:28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
что интересно попробовать для сравнения и другой инструмент, имеющийся сегодня. Принципиально другой. Принципом тут является то, что пользователю для окончательной обработки результата предоставляются не строки текста, а список об'ектов и, соответственно, способом обработки являются не утилиты для работы с текстом ( sed, awk, perl etc ), а возможности манипуляции с об'ектами в OO-парадигме ( коллекции, свойства, методы ). Разумеется, я говорю о pwsh. Промежуточные результаты обработки в pwsh передаются тоже по трубе '|', но это другая труба, об'ектная. Итак, надо найти 'Процессы запущенные вчера или ранее'. Кликните здесь для просмотра всего текста
Аналогом утилиты ps в pwsh является Get-Process ( алиас: gps ).
gps возвращает коллекцию об'ектов, поэтому первая задача - найти какое именно свойство возвращаемых об'ектов отвечает за 'Время запуска'. В предположении, что данное свойство, скорее всего, содержит в своём имени слово Time, попытаемся найти, как оно точно называется:
StartTime Property datetime StartTime {get;}Свойство StartTime - явно то, что нам надо и это свойство является об'ектом datetime. Об'ект DateTime в контексте нашей задачи получить вчерашнюю дату/время, чтобы сравнить со StartTime, нам вернёт Get-Date. смотрим свойства:
Add AddDays AddHours AddMilliseconds AddMinutes AddMonths AddSeconds AddTicks AddYears явно сгодятся для арифметики дат. проверяем:
а 'вчера' начинается с 00 часов 00 минут вчерашнего дня; время надо обнулить, поэтому точка отсчета для сравнения со StartTime будет выглядеть так:
Пожалуй, даже интереснее оформить вычисление 'вчера' в виде функции
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
|
||
| 03.02.2020, 11:48 | ||
![]() Ну а если серьёзно, что Вы имеете в виду?, что:
0
|
||
|
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,917
|
|
| 03.02.2020, 11:50 | |
|
Я пока не знаю причины, не разбирался ещё,
просто показал результат.
0
|
|
|
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
|
||||||
| 03.02.2020, 11:54 | ||||||
|
volodin661,
-le = less or equal :
0
|
||||||
|
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,917
|
|
| 03.02.2020, 12:51 | |
|
0
|
|
|
|
|
| 03.02.2020, 13:55 | |
|
Не по теме: pwsh моложе, он просто обязан быть безоговорочно лучшим, но только в разделе PowerShell...
0
|
|
|
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
|
|
| 03.02.2020, 14:06 | |
|
volodin661,
-le (yday) = вчера либо младше! То есть вчерашние + сегодняшние.greater than today = старше сегодншних, то есть ВСЕ, кроме сегодняшних. Разницу улавливаете?
0
|
|
|
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,917
|
|
| 03.02.2020, 17:22 | |
|
Kukstyler, а чем измеряется время ?
0
|
|
| 03.02.2020, 17:22 | |
|
Помогаю со студенческими работами здесь
20
В диспетчере задач висят процессы запущенные пользователем Не получается сгруппировать запущенные процессы по ключу SID
Можно ли вместо поиска окон (FindWindow) искать запущенные процессы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|