Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 75

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Β exit(0);

}

Она ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ зависящиС ΠΎΡ‚ ОБ Linux Π΄Π°Π½Π½Ρ‹Π΅. Если ваша машина Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΡΠ΅Ρ‚ΡŒ, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСти:

$ <b>./hostget</b>

Computer host name is suse103

System is Linux on i686 hardware

Nodename is suse103

Version is 2.6.20.2-2-default, #1 SMP Fri Mar 9 21:54:10 UTC 2007

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

gethostname
для получСния ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это имя β€”
suse103
. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± этом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π½Π° Π±Π°Π·Π΅ Intel Pentium 4 с ОБ Linux Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ систСмный Π²Ρ‹Π·ΠΎΠ²
uname
. Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… строк зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строка с вСрсиСй систСмы содСрТит Π΄Π°Ρ‚Ρƒ компиляции ядра.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

uname
Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² исходном ΠΊΠΎΠ΄Π΅ Linux для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
uname
, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

gethostid
.

<b>#include &lt;unistd.h&gt;</b>

<b>long gethostid(void);</b>

Ѐункция

gethostid
ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹, слСдящиС Π·Π° соблюдСниСм Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Ρ… соглашСний, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π΅Π΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… с Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ лицСнзиями. На Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станциях Sun ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€, установлСнный Π² постоянной памяти Π²ΠΎ врСмя изготовлСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ для систСмного оборудования. Π”Ρ€ΡƒΠ³ΠΈΠ΅ систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Linux, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСса ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ слишком бСзопасного для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€Π°Π².

Π’Π΅Π΄Π΅Π½ΠΈΠ΅ систСмных ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ²

МногиС прилоТСния Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² рСгистрации своСй Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. БистСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‡Π΅Π½ΡŒ часто выводят сообщСния Π½Π° консоль ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡ… Π² рСгистрационный систСмный ΠΆΡƒΡ€Π½Π°Π». Π’ этих сообщСниях ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ошибки, прСдупрСТдСния ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ общая информация ΠΎ состоянии систСмы. НапримСр, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° su ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытался ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ супСр ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π» Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ.

ΠžΡ‡Π΅Π½ΡŒ часто зарСгистрированныС сообщСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² систСмныС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, прСдоставляСмом для этой Ρ†Π΅Π»ΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/admor/var/log. ΠŸΡ€ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ установкС ОБ Linux всС систСмныС сообщСния содСрТатся Π² Ρ„Π°ΠΉΠ»Π΅ /var/log/messages, Π² Ρ„Π°ΠΉΠ» /var/log/mail Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСгистрируСмыС сообщСния ΠΎΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΉ систСмы, Π° Π² Ρ„Π°ΠΉΠ»Π΅ /var/log/debug ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ сообщСния. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ своСй систСмы ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/syslog.conf ΠΈΠ»ΠΈ /etc/syslog-ng/syslog-ng.conf Π² зависимости ΠΎΡ‚ вСрсии Linux.

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ зарСгистрированных сообщСний.

Mar 2 6 18:25:51 suse103 ifstatus: eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)

Mar 26 18:25:51 suse103 ifstatus: eth0 configuration: eth-id-00:0c:29:0e:91:72

...

May 20 06:56:56 suse103 SuSEfirewall2: Setting up rules from /etc/sysconfig/SuSEfirewall2

...

May 20 06:56:57 suse103 SuSEfirewall2: batch committing

...

May 20 06:56:57 suse103 SuSEfirewall2: Firewall rules successfully set

...

Jun 9 09:11:14 suse103 su: (to root) neil on /dev/pts/18 09:50:35

Π’ этом Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π²ΠΈΠ΄Ρ‹ рСгистрируСмых сообщСний. НСсколько ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ нСпосрСдствСнно ядром Linux Π²ΠΎ врСмя Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ обнаруТСния установлСнного оборудования. Брандмауэр сообщаСт ΠΎ своСй пСрСнастройкС. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

su
ΠΈΠ·Π²Π΅Ρ‰Π°Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ доступ с ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ neil.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Для просмотра рСгистрируСмых сообщСний Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

НСкоторыС систСмы UNIX Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ для чтСния сообщСниями, Π½ΠΎ ΠΎΠ½ΠΈ ΡΠ½Π°Π±ΠΆΠ°ΡŽΡ‚ администраторов срСдствами для чтСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… систСмных событий. Π‘ΠΌ. подробности Π² систСмной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ систСмных сообщСний ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΌΠ΅Ρ‚ΠΎΠ΄ формирования сообщСний стандартный. Π’ спСцификации UNIX прСдставлСн доступный всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ интСрфСйс формирования рСгистрируСмых сообщСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

syslog
.

<b>#include &lt;syslog.h&gt;</b>

<b>void syslog(int priority, const char *message, arguments...);</b>

Ѐункция syslog посылаСт рСгистрируСмоС сообщСниС срСдству вСдСния систСмного Турнала (logging facility). Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚

priority
, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ поразрядной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ
OR
ΠΈΠ· стСпСни ваТности сообщСния (severity level) ΠΈ Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ сообщСниС (facility value). Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ ваТности опрСдСляСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия, Π° Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ фиксируСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° сообщСния.

Π’ΠΈΠΏΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΈΠ· Ρ„Π°ΠΉΠ»Π° syslog.h) Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ константу

LOG_USER
, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ для обозначСния сообщСния, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΈΠ· прилоТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), ΠΈ константы
LOG_LOCAL0
,
LOG_LOCAL1
, ...,
LOG_LOCAL7
, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для локального администратора.

Π’ Ρ‚Π°Π±Π». 4.6 пСрСчислСны стСпСни ваТности сообщСний Π² порядкС убывания ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 4.6

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ОписаниС
LOG_EMERG
ΠšΡ€ΠΈΠ·ΠΈΡΠ½Π°Ρ ситуация
LOG_ALERT
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
LOG_CRIT
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ оборудования
LOG_ERR
Ошибки
LOG_WARNING
ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
LOG_NOTICE
ΠžΡΠΎΠ±Ρ‹Π΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ внимания
LOG_INFO
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сообщСния
LOG_DEBUG
ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ сообщСния