Титла: Оптимизация на команди Публикувано от: rcbandit в Dec 23, 2010, 01:34 Здравейте,
Пиша на С малка програма която да взема през определен период чрез команди състоянието на OS като през интервал време изпълнява команди в shell. Възможно ли е тъйкато знам че самите команди са програми да се направи някаква по директна заявка за състоянието. Как е възможно да се оптимизира този процес? Поздрави Титла: Re: Оптимизация на команди Публикувано от: n00b в Dec 23, 2010, 01:54 Може ли малко по-конкретно?
Трябва да четеш това което връщат в конзолата? Или да провериш дали вече не са стартирани като процеси? Или? Няма ли да е по-лесно вместо супер-дупер Ц езика да реализираш цялата тази гимнастика с един шел скрипт стартиращ се от cron? Даже в момента гледам подобно нещо реализирано чрез PHP. Титла: Re: Оптимизация на команди Публикувано от: rcbandit в Dec 23, 2010, 03:00 Няма как на С трябва да е защото е plugin.
Ами да кажем че трябва да се провери колко е свободното пространство но HDD вместо да се изпълнява df -h няма ли друг начин от по-ниско ниво с което да се вземат данните? Титла: Re: Оптимизация на команди Публикувано от: n00b в Dec 23, 2010, 03:42 Ами има...
Намираш кода на df и гледаш какво прави -h. Ще е едно парче код от около ~10-тина реда дето си го копираш и преправяш за целите. Титла: Re: Оптимизация на команди Публикувано от: rcbandit в Dec 23, 2010, 04:23 Ok мерси,
Още един въпрос. При някои комерсиални версии на UNIX се изпълняват същите команди но са с по-различен резултат. Когато нямаме кода в случая на df за да видим какво прави h какво може да се направи. Титла: Re: Оптимизация на команди Публикувано от: borovaka в Dec 23, 2010, 06:53 rcbandit Дай пример за такива дистрибуции ... При RHEL примерно можеш също да си вземеш кода на приложенията без проблеми.
Титла: Re: Оптимизация на команди Публикувано от: n00b в Dec 23, 2010, 11:35 Всъщност и комерсиалните дистрибуции правят подобни хватки, но ще трябва да си поиграете малко повечко с тестовете.
Титла: Re: Оптимизация на команди Публикувано от: b2l в Dec 23, 2010, 11:38 Код
Според мен е грешно да ползваш шел команди в С програма. PS: Горния код ти дава размера на диска, но може да се преправи. Титла: Re: Оптимизация на команди Публикувано от: solarflux в Dec 23, 2010, 13:22 busybox е реализация на голяма част от функционалността на много от командите необходими да се добие някаква представа за състоянието на дадена система. Голяма част от сорса на busybox според тях самите би трябвало да тръгне без модификации на различни платформи, така че ако търсите малки имплементации на някои основни команди, тяхната версия може би биха били полезни...
Титла: Re: Оптимизация на команди Публикувано от: jet в Dec 24, 2010, 01:07 от някъде ми попадна един скрипт, викаш го с крон-а всяка минута
0 0 * * * /root/info.sh > /var/www/osstat.html Код
отдолу можеш да му добавиш още статистики каквото те вълнува. /proc/ е пълна с файлове, които директно се четат и може да се парсват с информация от ядрото за твоята система отваряш html файла с браузъра и четеш Титла: Re: Оптимизация на команди Публикувано от: rcbandit в Dec 24, 2010, 01:25 Сещате ли се за друг подобен проект като http://www.busybox.net/
Титла: Re: Оптимизация на команди Публикувано от: n00b в Dec 24, 2010, 01:52 Пич - лозето иска мотика.
Титла: Re: Оптимизация на команди Публикувано от: rcbandit в Dec 24, 2010, 02:07 И още нещо
Команда изпълнена върху HP-UX дали е еднаква с команда в Solaris или AIX? Имате ли представа дали в различните операционни системи командите се пишат еднакво но са с различен сорс код? Титла: Re: Оптимизация на команди Публикувано от: bop_bop_mara в Dec 25, 2010, 02:22 И още нещоВ общия случай, потърси информация за дефинициите на posix стандарта, старай се да следваш него и тогава конкретната имплементация не те интересува. Титла: Re: Оптимизация на команди Публикувано от: task_struct в Dec 25, 2010, 21:25 В повечето случай ( под всички Линукс дистрибуции и предполагам всичко, на което може да се подкара Гном/КДЕ) има помощни библиотеки и демони - UDev, UDisk, Solid, HAL. Повечето то тези библиотеки/демони предлагат API-та и/или D-Bus интерфейси, които може да ползваш. Така приложението ти ще стане няколко реда код.
|