powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
5 сообщений из 5, страница 1 из 1
Отрубальщик
    #1402428
Сквозняк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя прелесть, файл ~/.kde/Autostart/otrubalscik.sh
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#!/bin/sh
while true; do
xsukasize=$(stat -c%s "~/.xsession-errors");
if [ "$xsukasize" -gt "1000000000" ];
then
echo "Случилась лажа! размер ~/.xsession-errors составил - $xsukasize"
echo "производится укорачивание этого файла."
truncate --size=1000 ~/.xsession-errors
fi

sleep 5m
done;
Стоит какому-то приложению, например емаксу спрятавшемуся в фоне, начать отправлять в несуществующую консоль сообщения, как файл ~/.xsession-errors распухает пока не кончается место в разделе. Для быстрого отращивания лога можно запустить через F2 такую скомпилированную демку:
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
label
1;
begin
1:
writeln('ewfojnwefnioewfnklvewnklvewklnefwjnefjefwkjl');
goto 1;
end.
Гигабайты отожрутся почти мгновенно. И окажется что удалять файл ~/.xsession-errors не только бесполезно, но и вредно - иксы всё равно станут гадить, но не в файл, а вообще мимо, пространство станет отжираться, а распухшего файла, который можно усечь, не появится. Команда truncate --size=1000 ~/.xsession-errors освобождает место на диске, но сам файл лога продолжает расти, иксы пишут в файл с того индекса, который помнят, потому середина лога получается пустая.

Есть какая-нибудь команда указывающая иксам писать в начало файла, чтобы его длина не доросла до терабайтов?
...
пше згыр
Рейтинг: 0 / 0
Отрубальщик
    #1566527
Сквозняк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дерьмо ваш баш, надо было. на паскале бинарник писать - там программы хотя бы работают.
На тестах скрипт
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#!/bin/sh
padlll=1000;
while true; do
xsukasize=$(stat -c%s "~/.xsession-errors");
if [ "$xsukasize" -gt "1000000000" ];
then
echo "Случилась лажа! размер ~/.xsession-errors составил - $xsukasize"
echo "производится укорачивание этого файла."
truncate --size=1000 ~/.xsession-errors
fi

if [ "$xsukasize" -gt "400000000000" ];
then
if [ "$padlll" -gt "100" ];
then
konsole -e laza_konfiga.sh
padlll=1;
fi
fi

sleep 5m
done;
работал хорошо, а как в очередной раз случайно запущенный емакс высрал многогиговый вопль с ошибками, так нихрена не произошло и пришлось вводить команду вручную. Компилируемый бинарь стабильнее работает.
...
пше згыр
Рейтинг: 0 / 0
Отрубальщик
    #1569206
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сквозняк

Съешь ещё этих мягких французских булок круассцанов, да выпей же чаю водки
...
Рейтинг: 0 / 0
Отрубальщик
    #1569731
Сквозняк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx  28.09.2019, 06:48
Сквозняк

Съешь ещё этих мягких французских булок круассцанов, да выпей же чаю водки
Запихните себе этот баш в гудок и посыпьте перцем.
...
пше згыр
Рейтинг: 0 / 0
Отрубальщик
    #1570637
Сквозняк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
{$GOTO ON}
{$mode fpc}
{$R+}
//Программа для оперативного для слежения
//за размером файла лога ~/.xsession-errors и оперативного
//уменьшения пространства занимаего им на накопителе

uses
sysutils,unix;

var
F: file;
q64: int64;
flag2: longint;
Z5: ansistring;

label
1;

begin
flag2:=1000;
Z5:=SysUtils.GetEnvironmentVariable('HOME');
1:
system.Assign(F, Z5+'/.xsession-errors');
reset(F,1);
q64:=FileSize(F);
//writeln(q64);
if q64>200000000 then begin
               system.seek(F,50000);
               system.Truncate(F)
                        end;
if q64>400000000000 then begin
         if flag2=1000 then fpsystem('konsole -e laza_konfiga.sh');
         flag2:=0;
                         end;
system.close(F);
sleep(30000);
goto 1;
end.
...
пше згыр
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]