Tag Archives: linux

Найпростіший спосіб вимірювання найгіршої метрики

Або іншими словами – примітивний облік робочого часу в лінуксах.

Для цього є команда – last. Дозволяє подивитись в логах час останніх входів і виходів з системи. Якщо наприклад дати команду

last 7 # еквівалентно last tty7

Дізнаємось хто коли і скільки користувався сьомим терміналом:

bunyk    tty7         :0               Thu Feb  2 08:30 - down   (09:32)

Вдома попробував – не працює. А виявляється все тому, що є певна конфігурація ротації логів /etc/logrotate.conf, в якій написано – monthly.

Але команду я дізнався на початку місяця, коли ще жодних логів не було навіть на роботі. Якось неправильно ця ротація працює. Вдома логи чомусь все одно ведуться за один день, хоча я й написав що хочу місячну ротацію. Може не в ті логи написав.

А ще збацав коротенький скриптик, який бере дані з last, і рахує середній робочий час:

#!/usr/bin/python3
import re
import subprocess 

def hours(s):
    s = s.split(':')
    return float(s[0]) + float(s[1]) / 60

def to_str(x):
    h = int(x)
    m = 60 * (x - h)
    return '%s:%s' % (h, int(m))

output = subprocess.check_output(['last', '7']).decode('utf-8')

data = (re.findall(r'\((\d\d:\d\d)\)', x) for x in output.splitlines())
data = [hours(x[0]) for x in data if x]

print(output)
print('Average time: ', to_str(sum(data)/len(data)))

bunyk@bunyk-laptop:~/workspace/uaprom$ /home/bunyk/experimental/timestat.py 
bunyk    tty7         :0               Thu Mar 22 09:32   still logged in   
bunyk    tty7         :0               Wed Mar 21 10:37 - 19:51  (09:13)    
bunyk    tty7         :0               Tue Mar 20 11:48 - down   (08:16)    
bunyk    tty7         :0               Mon Mar 19 11:38 - down   (07:14)    
bunyk    tty7         :0               Sat Mar 17 09:45 - down   (08:36)    
bunyk    tty7         :0               Fri Mar 16 10:35 - 19:23  (08:48)    
bunyk    tty7         :0               Thu Mar 15 10:22 - down   (08:47)    
bunyk    tty7         :0               Tue Mar 13 10:02 - 19:44  (09:42)    
bunyk    tty7         :0               Mon Mar 12 12:08 - 20:34  (08:25)    
bunyk    tty7         :0               Wed Mar  7 10:29 - down   (07:42)    
bunyk    tty7         :0               Tue Mar  6 09:54 - down   (09:50)    
bunyk    tty7         :0               Mon Mar  5 11:15 - 19:32  (08:16)    
bunyk    tty7         :0               Sat Mar  3 11:21 - down   (07:03)    
bunyk    tty7         :0               Fri Mar  2 12:08 - down   (08:00)    

wtmp begins Thu Mar  1 18:46:07 2012

Average time:  8:27

Виходить що я трохи більше ніж пів-години на добу недопрацьовую. Правда шпигунський роман Тоні ДеМарко розповідає про те що до програмістів краще не застосовувати метрики, бо ті хитрі зарази знайдуть спосіб максимізувати метрику не покращуючи продукт. Якою гарною ця метрика не була б (хай навіть зміною відношення кількості вад до кількості функціоналу). А Тоні ДеМарко – виявляється в вікіпедії стоїть поруч з такими гігантами як Вард Каннінгам, Мартін Фаулер і навіть Тоні Хоар. Напевне варто познайомитись детальніше. Правда часу нема. Але якщо він не важливий, тоді важливе лише те що я вважаю важливою дією в кожен момент часу.


Filed under: Інструменти, Кодерство Tagged: linux, робота, Python

Знайомі незнайомці: file, ln та lost+found

No Gravatar

Досі мені ні разу не доводилося відновлювати файлову систему після краху або неправильних дій користувачів, проте одного дня я сам «прострелив собі ногу» в стилі UNIX: вилучив половину файлів двотерабайтного сховища на сервері. В цю особливо похмуру ніч я запустив перебудову файлової системи з метою знаходження старих невилучених файлів, і вже на ранок я отримав більш-менш відновлену файлову систему, а в її корені з’явилась вищеозначена директорія lost+found.

Відкривши директорію я побачив 180 гігабайт файлів з дивними назвами без жодного натяку хоча б на приналежність до типу файлу. Так, це і були відновлені файли. На фоні цього хаосу так само дивно названі директорії виглядали ледве не оазисами в пустелі: адже в них вціліли справжні імена файлів. Проте 180 гектар вручну не просієш, і я вирішив для початку оцінити масштаби трагедії і знайти більш-менш адекватний спосіб витягти з того хаосу частинки необхідних мені даних. І ось тут почалось найцікавіше. Read more »

Автоматичне налаштування Wi-Fi в Debian

No Gravatar

Я звик носити з собою власний ноутбук, постійно переключаючись між двома різними точками доступу до мережі інтернет: вдома та на роботі. З тиждень я мирився з тим, що необхідно щоразу перенастроювати параметри бездротового підключення. Використання сторонніх засобів для збереження та перенастроювання Wi-Fi підключення мене особливо не радувало, до того ж, моєю метою було ще й максимально зручне управління мережевими підключеннями як в графіці, так і в терміналі. Пам’ять нагадала мені, що подібна ситуація вже передбачена в файлі мережевих налаштувань /etc/network/interfaces. Read more »

Пишемо інсталятори в Linux

No Gravatar

Мабуть, немає таких людей в середовищі Linux-користувачів, яким би не доводилося ставити закрите або комерційне програмне забезпечення. Не раз доводилось бачити “рідні” для цього виду програм інсталятори: графічні чи консольні, але завжди своєрідні. І поширюється програма разом з інсталятором в одному сценарії для командного інтерпретатора. А чи може хто-небудь написати власну програму-інсталятор, налаштувати її під себе? . Сьогодні, шановний читачу, ми навчимося писати інсталятори для UNIX.

Read more »

Ви все ще використовуєте bash? Тоді ми до вас!

No Gravatar

Вже давним-давно хотів зрозуміти причину страшенних війн стосовно командної оболонки (shell). З Bash я був знайомий з самого початку мого використання Linux, але майже ніхто його не хвалив. Так, всі казали, що це дефолтний, громіздкий командний інткрпретатор, додаючи ще купу епітетів явно не на його користь. І ось одного разу я таки вирішив спробувати щось інше.

Коли новенький ZSH стартував як мій дефолтний шелл, я ще дуже довго не міг зрозуміти, чим же він настільки хороший. Це якраз той варіант, коли баш виглядав краще, оскільки був дефолтним і мав вже деякі настройки хоча б того ж запиту на ввід ($PROMPT, $PS[1-4]), а тут споглядання картини

localhost%

ніяк не радувало. Так моє перше знайомство і закінчилося б, якби мені не було ліньки поставити баш назад (думка “дай ще потестю, мож ще що цікаве вилізе” промайнула у мене в мізках і вирішила хід подій). З часом я звик до цього шелла, його невеликих особливостей, і нарешті почав бачити різницю в швидкості роботи (порівнюючи роботу bash і zsh на різних користувачах).

А поки час ішов, я ще не раз бачив деякі “розфарбовані” екземпляри все того ж ZSH, і мені кортіло нарешті й собі таку цяцьку. І ось нарешті моя мрія здійснилась, і я з вами всім цим щастям поділюсь :) .

Read more »

MS Visual Studio-подібна IDE для Linux

No Gravatar

Програмісти можуть дудіти в труби та фанфари, бо тепер і для Linux, здається, з’явилась достойна IDE. Поки її не тестив ще, але судячи по опису має бути дуже приємна річ. Нещодавно проект Mono (той, що займається портуванням C# та .NET на Linux) випустив і власне середовище розробки: MonoDevelop, інтерфейс якогодуже сильно нагадує Майкрософтівську студію. Нещодавно вийшла перша (1.0) версія продукту. Це потужне IDE, звісно інтегроване з Mono C#.  Але не лише. Офіційно також пдтримуються C/C++, Java, Visual Basic.NET та деякі інші. Компіляція C/C++ коду здійснбється за допомогою компіляторів GNU gcc та g++  і для цих мов підтримується (ура!) автодоповнення коду (code completion), спливаюча інформація, навігація по коду та інше. Більше того, MonoDevelop може навіть завантажувати деякі додатки Visual Studio, інтегрується з Subversion для контролю версій, підтримую юніт-тестинг та дозволяє створювати власні додатки.

Шпаргалка юніксоїда

No Gravatar

Не знаю наскільки давно з’явилась ця штука і може баян, але користь від неї важко переоцінити. Так ось, представляю вашій увазі шпаргалку юніксоїда. Цей документ – набір Unix/Linux/BSD команд, які знадобляться як людині, яка займається інформаційними технологіями в юнікс-середовищі (програмістам, адмінам), так і просто просунутим користувачам. В цьому мануалі є короткі пояснення, але вважається, що користувач знає, що він робить.

Останняю версію (наразі вже 11-ту) “шпори” можна знайти за адресою: http://cb.vu/unixtoolbox.xhtml. Якщо в цій адресі замінити розширення .xhtml на .pdf, то ви отримаєте PDF-версію, а якщо на .book.pdf, то версію PDF у вигляді буклету. Якщо роздрукувати буклетну версію на принтері з двостороннім друком, то отримаєте маленьку книжку, готову до прошивки. Рекомендую ;)

PlayOnLinux – мрія linux-геймера?

No Gravatar

Чи багато геймерів серед користувачів Linux? Хтозна :) Але впевнений, що більшість з них дуже ледачі, щоб налаштувати WINE для того, аби запускати свої улюблені іграшки. Консоль та конфігурацйні файли, погодьтесь, не для кожного. Тому багато людей і тримають по дві ОС, причому використовуючи Windows виключно як ігрову платформу. Якщо це єдина причина з якої ви досі тримаєте Windows на комп’ютері, то тепер незручностям прийшов край – про вас вже попіклувались. Продукт PlayOnLinux представляє собою зручний інфтерфейс для налаштування емулятора WINE а також купу інших смачностей. Відповідно, кількість підтримуваного софту обмежуєтсья софтом, що підтримується самим емулятором. Благо, останні його версії найпопулярніші речі (той же World of Warcraft, наприклад). Використовуючи PlayOnLinux можна встановлювати та видаляти нові ігри, експаншени та патчі. Прицьому кожна встановлюється в своє середовище. В комплекті йдуть набір скриптів, які оптимально налаштують середовище спеціально для певної гри, але якщо ви не знайдете там потрібну, то це ще не значить, що вона не запуститься. Якщо гра офіційно підтримується WINE, то максимум, що вам потрібно буде зробити – трохи донааштувати.