<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Sysadmins tips and tricks]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=19703</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=19703&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Sysadmins tips and tricks».]]></description>
		<lastBuildDate>Sat, 02 Jun 2012 14:31:13 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=279127#p279127</link>
			<description><![CDATA[<p>Скрипт блокировки IP адресов.<br /></p><div class="codebox"><pre><code>#!/bin/bash
# Simple iptables IP/subnet block script
# -------------------------------------------------------------------------
# Copyright (c) 2004 nixCraft project &lt;http://www.cyberciti.biz/fb/&gt;
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
IPT=/sbin/iptables
SPAMLIST=&quot;spamlist&quot;
SPAMDROPMSG=&quot;SPAM LIST DROP&quot;
BADIPS=$(egrep -v -E &quot;^#|^$&quot; /root/iptables/blocked.ips)
 
# create a new iptables list
$IPT -N $SPAMLIST
 
for ipblock in $BADIPS
do
   $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix &quot;$SPAMDROPMSG&quot;
   $IPT -A $SPAMLIST -s $ipblock -j DROP
done
 
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST</code></pre></div><p>Найдено тут - <a href="http://bash.cyberciti.biz/firewall/iptables-block-ip-address/">http://bash.cyberciti.biz/firewall/ipta … p-address/</a><br />Там же еще много интересных скриптов.</p>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Sat, 02 Jun 2012 14:31:13 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=279127#p279127</guid>
		</item>
		<item>
			<title><![CDATA[Re: Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259662#p259662</link>
			<description><![CDATA[<p>Мой ~/.zshrc</p><div class="codebox"><pre><code># разукрашиваем ls и автодополнение
export LS_COLORS=&#039;no=00;37:fi=00;37:di=01;36:ln=04;36:pi=33:so=01;35:do=01;35:bd=33;01:cd=33;01:or=31;01:su=37:sg=30:tw=30:ow=34:st=37:ex=01;31:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.btm=01;31:*.sh=01;31:*.run=01;31:*.tar=33:*.tgz=33:*.arj=33:*.taz=33:*.lzh=33:*.zip=33:*.z=33:*.Z=33:*.gz=33:*.bz2=33:*.deb=33:*.rpm=33:*.jar=33:*.rar=33:*.jpg=32:*.jpeg=32:*.gif=32:*.bmp=32:*.pbm=32:*.pgm=32:*.ppm=32:*.tga=32:*.xbm=32:*.xpm=32:*.tif=32:*.tiff=32:*.png=32:*.mov=34:*.mpg=34:*.mpeg=34:*.avi=34:*.fli=34:*.flv=34:*.3gp=34:*.mp4=34:*.divx=34:*.gl=32:*.dl=32:*.xcf=32:*.xwd=32:*.flac=35:*.mp3=35:*.mpc=35:*.ogg=35:*.wav=35:*.m3u=35:&#039;;
export GREP_COLOR=&quot;1;33&quot;
[[ -x $(whence -p most) ]]; export PAGER=$(whence -p most)
export EDITOR=&quot;/usr/bin/vim&quot;
export DIRSTACKSIZE=20
export PAGER=&quot;/usr/bin/most&quot;
# export PAGER=&#039;less -X -M&#039;
export PATH=&quot;$PATH&quot;:/usr/local/sbin
export LANG=&quot;ru_RU.UTF-8&quot;
export LC_ALL=&quot;ru_RU.UTF-8&quot;
export LC=&quot;ru_RU.UTF-8&quot;
export LESSCHARSET=&quot;UTF-8&quot;

HISTFILE=~/.zsh_history
SAVEHIST=1000
HISTSIZE=1000

zstyle &#039;:completion:*&#039; menu yes select
zstyle &#039;:completion:*&#039; menu select=2
zstyle &#039;:completion:*:default&#039; list-colors ${(s.:.)LS_COLORS}
zstyle &#039;:completion:*&#039; verbose yes
zstyle &#039;:completion:*:descriptions&#039; format &#039;%U%B%d%b%u&#039;
zstyle &#039;:completion:*:messages&#039; format &#039;%d&#039;
zstyle &#039;:completion:*:warnings&#039; format &#039;No matches for: %d&#039;
zstyle &#039;:completion:*&#039; group-name &#039;&#039;
zstyle &#039;:completion:*&#039; squeeze-slashes true # Remove trailing slashes
zstyle &#039;:completion:*&#039; select-prompt %SScrolling active: current selection at %p%s
zstyle &#039;:completion:*&#039; use-cache on
zstyle &#039;:completion:*&#039; cache-path ~/.zsh_cache
zstyle &#039;:completion:*:(all-|)files&#039; ignored-patterns &#039;(|*/)CVS&#039;
zstyle &#039;:completion:*:cd:*&#039; ignored-patterns &#039;(*/)#CVS&#039;
zstyle &#039;:completion:*&#039; completer _complete _match _approximate
zstyle &#039;:completion:*:match:*&#039; original only
# zstyle &#039;:completion:*:approximate:*&#039; max-errors 1 numeric
zstyle -e &#039;:completion:*:approximate:*&#039; max-errors &#039;reply=($((($#PREFIX+$#SUFFIX)/3))numeric)&#039;
zstyle &#039;:completion:*:functions&#039; ignored-patterns &#039;_*&#039;
zmodload zsh/complist
zstyle &#039;:completion:*&#039; list-colors ${(s.:.)LS_COLORS}
zstyle &#039;:completion:*:rm:*&#039; ignore-line yes
zstyle &#039;:completion:*:mv:*&#039; ignore-line yes
zstyle &#039;:completion:*:cp:*&#039; ignore-line yes
zstyle &#039;:completion:*:sudo:*&#039; command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin
zstyle &#039;:completion:*:*:kill:*:processes&#039;   list-colors &quot;=(#b) #([0-9]#)*=36=31&quot;
zstyle &#039;:completion:*:*:kill:*&#039;             menu yes select
zstyle &#039;:completion:*:kill:*&#039;               force-list always
zstyle &#039;:completion:*:*:killall:*&#039;          menu yes select
zstyle &#039;:completion:*:killall:*&#039;            force-list always
zstyle &#039;:completion:*:processes&#039;            command &quot;ps -au$USER&quot;
zstyle &#039;:completion:*:cd:*&#039; ignore-parents parent pwd

autoload -Uz compinit; compinit
autoload zkbd
autoload colors; colors
autoload -U edit-command-line
autoload -U url-quote-magic
autoload -U zcalc

bindkey -e
bindkey &quot;^[[A&quot; history-search-backward
bindkey &quot;^[[B&quot; history-search-forward
bindkey &quot;\e[1~&quot; beginning-of-line # Home
bindkey &quot;\e[4~&quot; end-of-line # End
bindkey &quot;\e[5~&quot; beginning-of-history # PageUp
bindkey &quot;\e[6~&quot; end-of-history # PageDown
bindkey &quot;\e[2~&quot; quoted-insert # Ins
bindkey &quot;\e[3~&quot; delete-char # Del
bindkey &quot;\e[5C&quot; forward-word
bindkey &quot;\eOc&quot; emacs-forward-word
bindkey &quot;\e[5D&quot; backward-word
bindkey &quot;\eOd&quot; emacs-backward-word
bindkey &quot;\e\e[C&quot; forward-word
bindkey &quot;\e\e[D&quot; backward-word
bindkey &quot;\e[Z&quot; reverse-menu-complete # Shift+Tab
bindkey &quot;\e[7~&quot; beginning-of-line # Home
bindkey &quot;\e[8~&quot; end-of-line # End
bindkey &quot;\eOH&quot; beginning-of-line
bindkey &quot;\eOF&quot; end-of-line
bindkey &quot;\e[H&quot; beginning-of-line
bindkey &quot;\e[F&quot; end-of-line

# Options {{{
setopt   auto_cd autocd
setopt   hist_ignore_all_dups
setopt   hist_ignore_space  histignoredups
setopt   inc_append_history
setopt   APPEND_HISTORY
setopt   autopushd pushdminus pushdsilent pushdtohome
setopt   cdablevars
setopt   ignoreeof # Prevent from using Ctrl + d
setopt   interactivecomments
# setopt nobanghist
setopt   noclobber
setopt   HIST_REDUCE_BLANKS
setopt   HIST_IGNORE_SPACE
setopt   SH_WORD_SPLIT
setopt   nohup
setopt   chase_links
setopt   hist_verify
setopt   extendedglob # Use regexp in commands (ex : cp ^*.(tar|bz2|gz))
setopt   IGNORE_EOF
setopt   nullglob
setopt   notify globdots autolist
# setopt  correct correctall
setopt   recexact longlistjobs
setopt   autoresume rcquotes mailwarning
unsetopt bgnice autoparamslash
unsetopt beep
unsetopt hist_beep
unsetopt list_beep
unsetopt BSD_ECHO
unalias  run-help
autoload run-help
set always_to_end
# }}}

## Coloring man pages
man() {
    env \
        LESS_TERMCAP_mb=$(printf &quot;\e[1;37m&quot;) \
        LESS_TERMCAP_md=$(printf &quot;\e[1;37m&quot;) \
        LESS_TERMCAP_me=$(printf &quot;\e[0m&quot;) \
        LESS_TERMCAP_se=$(printf &quot;\e[0m&quot;) \
        LESS_TERMCAP_so=$(printf &quot;\e[1;47;30m&quot;) \
        LESS_TERMCAP_ue=$(printf &quot;\e[0m&quot;) \
        LESS_TERMCAP_us=$(printf &quot;\e[0;36m&quot;) \
            man &quot;$@&quot;
}

# распаковка архива
extract () {
    if [ -f $1 ] ; then
        case $1 in
            *.tar.bz2)   tar xjf $1        ;;
            *.tar.gz)    tar xzf $1     ;;
            *.bz2)       bunzip2 $1       ;;
            *.rar)       unrar x $1     ;;
            *.gz)        gunzip $1     ;;
            *.tar)       tar xf $1        ;;
            *.tbz2)      tar xjf $1      ;;
            *.tgz)       tar xzf $1       ;;
            *.zip)       unzip $1     ;;
            *.Z)         uncompress $1  ;;
            *.7z)        7z x $1    ;;
            *)           echo &quot;я не в курсе как распаковать &#039;$1&#039;...&quot; ;;
        esac
    else
        echo &quot;&#039;$1&#039; is not a valid file&quot;
    fi
}

# упаковка в архив
pack () {
    if [ $1 ] ; then
        case $1 in
            tbz)       tar cjvf $2.tar.bz2 $2      ;;
            tgz)       tar czvf $2.tar.gz  $2       ;;
            tar)      tar cpvf $2.tar  $2       ;;
            bz2)    bzip $2 ;;
            gz)        gzip -c -9 -n $2 &gt; $2.gz ;;
            zip)       zip -r $2.zip $2   ;;
            7z)        7z a $2.7z $2    ;;
            *)         echo &quot;&#039;$1&#039; cannot be packed via pk()&quot; ;;
        esac
    else
        echo &quot;&#039;$1&#039; is not a valid file&quot;
    fi
}

# перенаправляем
READNULLCMD=${PAGER}

# цветной grep
alias grep=&#039;grep --color=auto&#039;
alias df=&#039;df -h&#039;
alias du=&#039;du -h&#039;
alias ls=&#039;ls -F --color=auto&#039;
alias ll=&quot;ls -lah&quot;
alias man=&quot;LC_ALL=&quot;ru_RU.UTF-8&quot; man&quot;

# разукрашиваем некоторые команды с помощью grc
[[ -f /usr/bin/grc ]] &amp;&amp; {
  alias ping=&quot;grc --colour=auto ping&quot;
  alias traceroute=&quot;grc --colour=auto traceroute&quot;
  alias make=&quot;grc --colour=auto make&quot;
  alias diff=&quot;grc --colour=auto diff&quot;
  alias cvs=&quot;grc --colour=auto cvs&quot;
  alias netstat=&quot;grc --colour=auto netstat&quot;
}

# разукрашиваем логи с помощью grc
alias logc=&quot;grc cat&quot;
alias logt=&quot;grc tail&quot;
alias logh=&quot;grc head&quot;
alias -g  HE=&#039;2&gt;&gt;( sed -ue &quot;s/.*/$fg_bold[red]&amp;$reset_color/&quot; 1&gt;&amp;2 )&#039; # Highlight Errors


# Установка PROMT
#
# левый
# PROMPT=&quot;%{$fg_bold[yellow]%}G$%{$reset_color%}&quot;
# правый - когда всё гуд хороший смайлик, когда ошибка то грусный, ну и цветные ясен фиг
# RPROMPT=&quot;%{$fg_bold[grey]%}%~/ %{$reset_color%}% %(?,%{$fg[green]%}:%)%{$reset_color%},%{$fg[red]%}:(%{$reset_color%}&quot;
# вопрос на автокоррекцию
# SPROMPT=&#039;zsh: Заменить &#039;\&#039;&#039;%R&#039;\&#039;&#039; на &#039;\&#039;&#039;%r&#039;\&#039;&#039; ? [Yes/No/Abort/Edit] &#039;
#
#
[[ ${TERM} =~ screen ]] &amp;&amp; precmd() { print -Pn &quot;\e]2;%2d\a&quot; } || RPROMPT=&#039;%F{white}%~%f&#039;
PS1=&#039;%B%F{cyan}%#%f%b &#039;
PS2=&#039;  &#039;
PS3=&#039;%B%F{white}?# %b%f%F{red}%# %f&#039;
PS4=&#039;%B%F{white}%_ %b%f%F{magenta}%# %f%B%F{white}+%N:%i %b%f%F{magenta}%# %f&#039;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Wed, 14 Mar 2012 14:55:54 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259662#p259662</guid>
		</item>
		<item>
			<title><![CDATA[Re: Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=245267#p245267</link>
			<description><![CDATA[<p>Упрощаем авторизацию ssh.<br />Рут не нужен.<br />Можно прописать альясы в .bashrc или .zshrc, но у ssh есть собственные инструменты для этого.<br /></p><div class="codebox"><pre><code>mkdir /home/username/.ssh &amp;&amp; chmod 700 /home/username/.ssh</code></pre></div><div class="codebox"><pre><code>vim /home/username/.ssh/config</code></pre></div><div class="codebox"><pre><code>Host ex1
   HostName example1.com
   Port 62333
   User username

Host ex2
   HostName example2.com
   Port 22000
   IdentityFile ~/.ssh/id_rsa
   User username
   ServerAliveInterval 30
   ServerAliveCountMax 120
   LocalForward 63333 localhost:3306 # Тунель для MySQL; 63333 - локальный порт; localhost:3306 - хост и порт на удаленной машине 

Host ex3
   HostName 10.10.0.1
   Port 22
   IdentityFile ~/.ssh/id_rsa
   User username
   Compression yes
   CompressionLevel 9</code></pre></div><p>Думаю все понятно.<br />Теперь заходить можно просто:<br /></p><div class="codebox"><pre><code>ssh ex1
ssh ex2
ssh ex3</code></pre></div><p>Копировать можно так:<br /></p><div class="codebox"><pre><code>scp filename.zip ex2</code></pre></div><p>Читаем: man ssh_config<br /><a href="http://linux.die.net/man/5/ssh_config">http://linux.die.net/man/5/ssh_config</a></p>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Mon, 23 Jan 2012 08:58:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=245267#p245267</guid>
		</item>
		<item>
			<title><![CDATA[Re: Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=245159#p245159</link>
			<description><![CDATA[<p>Резервная копия прав на файлы/каталоги:<br /></p><div class="codebox"><pre><code>getfacl -R /var/www &gt; permissions.acl</code></pre></div><p>Сохранит установленные права на каталоги/файлы, включая подкаталоги, начиная с /var/www в файл permissions.acl<br />Восстановление:<br /></p><div class="codebox"><pre><code>setfacl --restore=permissions.acl</code></pre></div><p>Путь указывать не надо, потому как getfactl сохраняет полный путь.</p>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Sun, 22 Jan 2012 17:56:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=245159#p245159</guid>
		</item>
		<item>
			<title><![CDATA[Re: Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=245046#p245046</link>
			<description><![CDATA[<p>Ищем пробелы в названиях файлов (в текущем каталоге) и заменяем их на &quot;_&quot; (знак подчеркивания).<br /></p><div class="codebox"><pre><code>find . -maxdepth 1 -name &quot;* *&quot; -type f | while read src; do mv &quot;$src&quot; `echo $src | tr &quot; &quot; &quot;_&quot;`; done </code></pre></div><p>maxdepth 1 - указывает на то чтобы переименование было только в текущем каталоге, если надо рекурсивно по каталогам, начиная от текущего:<br /></p><div class="codebox"><pre><code>find . -name &quot;* *&quot; -type f | while read src; do mv &quot;$src&quot; `echo $src | tr &quot; &quot; &quot;_&quot;`; done</code></pre></div><p>+++<br />Заменяем символы в верхнем регистре на нижний + заменяем пробелы на &quot;_&quot;.<br /></p><div class="codebox"><pre><code>#!/bin/bash
IFS=&quot;$(printf &#039;\n\t&#039;)&quot;   
for file in ./* ; do        
  if [ -f &quot;$file&quot; ] ; then  
     f=$(echo $file | tr A-Z a-z | tr &#039; &#039; _)
     if [ ! &quot;$file&quot; == &quot;$f&quot; ] ; then mv &quot;$file&quot; &quot;$f&quot;; fi
  fi
done
unset IFS</code></pre></div><p>В соответствии с <a href="http://www.dwheeler.com/essays/filenames-in-shell.html">http://www.dwheeler.com/essays/filenames-in-shell.html</a><br />+++<br />Только удалить пробелы из названий файлов, в текущем каталоге:<br /></p><div class="codebox"><pre><code>#!/bin/bash
IFS=&quot;$(printf &#039;\n\t&#039;)&quot;   
for file in ./* ; do        
  if [ -f &quot;$file&quot; ] ; then  
     f=$(echo $file | tr -d &#039; &#039;)
     if [ ! &quot;$file&quot; == &quot;$f&quot; ] ; then mv &quot;$file&quot; &quot;$f&quot;; fi
  fi
done</code></pre></div><p>Для тестирования - перед командой mv добавить echo, переименовывать не будет, только отобразит как это будет происходить, например:<br /></p><div class="codebox"><pre><code>#!/bin/bash
IFS=&quot;$(printf &#039;\n\t&#039;)&quot;   
for file in ./* ; do        
  if [ -f &quot;$file&quot; ] ; then  
     f=$(echo $file | tr -d &#039; &#039;)
     if [ ! &quot;$file&quot; == &quot;$f&quot; ] ; then echo mv &quot;$file&quot; &quot;$f&quot;; fi
  fi
done</code></pre></div><p>+++<br />+++<br />Чтобы посмотреть как это работает:<br /></p><div class="codebox"><pre><code>echo &quot; test test test &quot; | tr -d &#039; &#039;</code></pre></div><p>результат:<br /></p><div class="codebox"><pre><code>testtesttest</code></pre></div><p>Тоже самое используя sed:<br /></p><div class="codebox"><pre><code>echo &quot; test test test &quot; | sed &#039;s/ //g&#039;</code></pre></div><p>результат:<br /></p><div class="codebox"><pre><code>testtesttest</code></pre></div><div class="codebox"><pre><code>echo &quot; test test test &quot; | sed &#039;s/ /_/g&#039;</code></pre></div><p>результат:<br /></p><div class="codebox"><pre><code>_test_test_test_</code></pre></div><p>+++<br />+++<br />Еще один вариант:<br /></p><div class="codebox"><pre><code>#!/bin/bash
IFS=$&#039;\n&#039;
for f in `find .`; do
    file=$(echo $f | tr [:blank:] &#039;_&#039;)
    [ -e $f ] &amp;&amp; [ ! -e $file ] &amp;&amp; mv &quot;$f&quot; $file
done
unset IFS</code></pre></div><p>Однострок:</p><div class="codebox"><pre><code>IFS=$&#039;\n&#039;;for f in `find .`; do file=$(echo $f | tr [:blank:] &#039;_&#039;); [ -e $f ] &amp;&amp; [ ! -e $file ] &amp;&amp; mv &quot;$f&quot; $file;done;unset IFS</code></pre></div><p>+++<br />И интересный способ с find - верхний регистр в нижний, текущий каталог.<br /></p><div class="codebox"><pre><code>find . -type f -name &#039;*[A-Z]*&#039; -execdir bash -c &#039;mv &quot;$0&quot; &quot;$(echo &quot;$0&quot; | tr &quot;[:upper:]&quot; &quot;[:lower:]&quot;)&quot;&#039; {} \;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Sun, 22 Jan 2012 13:21:57 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=245046#p245046</guid>
		</item>
		<item>
			<title><![CDATA[Sysadmins tips and tricks]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=245015#p245015</link>
			<description><![CDATA[<p>Тема для всевозможных админ - хитростей и трюков, флуда и обсуждений тут не потерплю.<br />Для обсуждений - <a href="http://linuxforum.ru/viewtopic.php?id=19704">http://linuxforum.ru/viewtopic.php?id=19704</a><br />....<br />Начну:<br />....<br />Бэкап MySQL с удаленного сервера таблицы с именем dbname:<br /></p><div class="codebox"><pre><code>ssh user@host &#039;mysqldump -u&#039;root&#039; -p&#039;pass&#039; dbname | gzip&#039; &gt; /path/to/backups/db-backup-`date +%Y-%m-%d`.sql.gz</code></pre></div><p>Тоже только полностью всё:<br /></p><div class="codebox"><pre><code>ssh user@host &#039;mysqldump -u&#039;root&#039; -p&#039;pass&#039; | gzip&#039; &gt; /path/to/backups/db-backup-`date +%Y-%m-%d`.sql.gz</code></pre></div><p>Бэкап всех MySQL баз, для каждой таблицы отдельный файл:<br /></p><div class="codebox"><pre><code>while read; do mysqldump -u&#039;root&#039; -p&#039;pass&#039; $REPLY | gzip &gt; &quot;/path/to/backup/$REPLY.sql.gz&quot;; done \
            &lt; &lt;( mysql -u&#039;root&#039; -p&#039;pass&#039; -e &#039;show databases&#039; -s --skip-column-names )</code></pre></div><p>Меняем pass на свой root пароль MySQL и путь /path/to/backup на свой.</p>]]></description>
			<author><![CDATA[null@example.com (zenon)]]></author>
			<pubDate>Sun, 22 Jan 2012 09:02:55 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=245015#p245015</guid>
		</item>
	</channel>
</rss>
