рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдЗрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдпрд╛ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВ RSS рдлрд╝реАрдб рдПрдЧреНрд░реАрдЧреЗрдЯрд░

рд▓реЗрдЦ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░ "Google RSS рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред"



рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдХрдИ рдЖрд░рдПрд╕рдПрд╕ рдлрд╝реАрдб рдкрдврд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╡рд╛рд▓ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛ рдерд╛, рдореБрдЭреЗ рдХрднреА-рдХрднреА рдЖрд░рдПрд╕рдПрд╕ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдкрд╛рдардХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред



рдкрд░рд┐рдгрд╛рдо рдереЗ ... рдЪрд▓реЛ рдмрд╕ рдХрд╣рдирд╛ рд╣реИ - рдЙрддреНрд╕рд╛рд╣рдЬрдирдХ рдирд╣реАрдВред



рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡реНрдпрд╛рдореЛрд╣ рдХреЗ рд╕рд╛рде рдЖрдзреЗ рдореЗрдВ рдкреБрд░рд╛рдиреА рдПрд▓рд░реНрдЬреА рд╣реИ, рдФрд░ рдмрд╛рдж рдХреЗ Google рд░реАрдбрд░ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд╛рд░ рдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ рд╡реНрдпрд╛рдореЛрд╣ рдмреБрд░реА рдЪреАрдЬреЛрдВ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдФрд░ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкрд░рд┐рдЪрд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рднреА рдЙрддреНрд╕рд╛рд╣рдЬрдирдХ рдирд╣реАрдВ рд╣реИрдВред



рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд░рдЦреЗ рдЧрдП рдкрд╛рдардХреЛрдВ рдореЗрдВ рдХрдИ рдРрд╕реЗ рдЯреБрдХрдбрд╝реЗ рдереЗ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рднреА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЪреБрдирд╛ рдЧрдпрд╛ред рдПрдХ рдЫреЛрдЯреА рд╕реА рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЦрд░рд╛рдм рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЙрдкрдХрд░рдг, рдпрд╛ рдПрдХ рдЕрдЬреАрдм рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХ рдЬреИрд╕реА рдЫреЛрдЯреА-рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рд╣реИрдВ; рдФрд░ рдЕрдзрд┐рдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рди рдлрд╝реАрдбреНрд╕ рдХреЛ рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдлрд┐рд▓рд┐рдмреНрдпреВрд╕рди рдХрд┐рддрд╛рдмреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдереА, рдЬрд╣рд╛рдВ рдПрдХ рджрд┐рди рдореЗрдВ рдкреВрд░реЗ рдлрд╝реАрдб рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдЫ рдкреЛрд╕реНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдкрд╛рдардХ рдХреЛ рд╣рд░ рд╕рдордп рдЪрд▓рд╛рддреЗ рд░рд╣рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрджрд╛рд╕реАрди рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░ рдореЗрдВ рдЕрд╕рдВрддреБрд╖реНрдЯ рдкрд╛рдардХреЛрдВ рд╕реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╕реНрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред



рдФрд░ рдлрд┐рд░, рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреБрдирд┐рдпрд╛ рдХреА рдЕрдкреВрд░реНрдгрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдФрд░ рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрджрддрди рд╣рд╛рдереЛрдВ рдореЗрдВ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреБрдЫ рджрд┐рди рд╕рд╛рдЗрдХрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдереЗред







рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рддреИрдпрд╛рд░ рдиреБрд╕реНрдЦрд╛ рдХрд┐рд╕реА рдХреЛ рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХреА рдмрдЪрдд рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдиреБрд╕реНрдЦрд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛ рдХрд┐ рдШрдбрд╝реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ Centos 6 рдХреЗ рддрд╣рдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдШрд░реЗрд▓реВ рд╕рд░реНрд╡рд░ рдерд╛ред



рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:

rsstool

ssmtp

fdupes

... рд╕рд╛рде рд╣реА рдХреБрдЫ рд╕рдордп рдФрд░ рдЗрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХреЗ рд╕рд╛рдеред



рдирддреАрдЬрддрди, рдмрд▓реНрдХрд┐ рдПрдХ рдЖрджрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИ; рдХрд╛рдо рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:



рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреЙрд░реНрдо рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗ рдЯреЗрдк рдХреА рд╕реВрдЪреА рдкрдврд╝рддреА рд╣реИ:

habrahabr # http: //habrahabr.ru/rss - рдЕрд░реНрдерд╛рдд, рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ рдЯреЗрдк, рд╡рд┐рднрд╛рдЬрдХ "#" рдФрд░ рдЯреЗрдк рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдм, рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рд╕ рд╣реЗрдбрд░-рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдХрдИ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрди рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ (), рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ:



1. rsstool рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреЗрдк рдХреЛ рд╕реНрд╡рдпрдВ delimiters @ рдХреЗ рд╕рд╛рде csv рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреА рд╣реИ, iconv рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ koi-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд╣реЗрдбрд░ рд╕реЗ рдЧреНрд░реАрдк рдХрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред



rsstool --wget --csv=@ @url[$i](  http://habrahabr.ru/rss) | iconv -c -f UTF-8 -t KOI8-R| grep SITE\@DATE\@URL\@TITLE\@DESC -v >/path_to_rss2email/feed_new_@rssname[$i].rss (  /path_to_rss2email/feed_new_habrahabr.rss)
      
      







2 рд╣рдо рдПрдХ рдЯреЗрдк рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рддрд╛рдЬрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░, ">" рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ, рд╡рд╣ рд╕рдорд╛рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЕрдВрддрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЯреЗрдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рднреА - рддрд╛рдХрд┐ рдЕрдЧрд▓реЗ рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╛рдкреНрдд рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред



 diff -iaEbwB --strip-trailing-cr $path_temp/@rssarcfile[$i] (.. /path_to_rss2email/habrahabr.rss) $path_temp/feed_new_@rssname[$i].rss (.. /path_to_rss2email/feed_new_habrahabr.rss) | grep ^\\>\\ >$path_temp/@rssdiffer[$i] (.. /path_to_rss2email/habrahabr.diff)
      
      







3. рдЕрдм рдЖрдк рдЖрдирдиреНрджрд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдЯреЗрдк рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде habrahabr.diff рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА, рдФрд░ рдЕрдм рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣рдо рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд╛рдЗрди рд╕реЗ рдкрдврд╝рдирд╛, рдФрд░ рдлрд┐рд░ рдлреЙрд░реНрдо рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛:



"Habrahabr / Hooked / Thematic / Posts" @ "1399799340" @ " habrahabr.ru/post/222391 " @ "Google RSS рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ" @ "рдЗрд╕ рд╕рдкреНрддрд╛рд╣, 8 рдордИ рдХреЛ, Google рдиреЗ RSS рдлрд╝реАрдб рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ ... < рдХрдЯ ...>ред рдФрд░ рдкрдврд╝реЗрдВ тЖТ "



... RFC2822 рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдирд╛ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИ, рд╕реВрдЪреА рдореЗрдВ рдЕрдЧрд▓реЗ рдЯреЗрдк рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреА рд╣реИ, рдпрд╛ рд▓рдЧрднрдЧ рджрд╕ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╕реЛ рдЬрд╛рддреА рд╣реИ; рдФрд░ рдЙрддреНрдкрдиреНрди рдЕрдХреНрд╖рд░, рдЗрд╕ рдмреАрдЪ, рдХреНрд░реЛрди рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╣ RFC2822 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП fdupes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ ... (рд╣рд╛рдБ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмреИрд╕рд╛рдЦреА рд╣реИред рд╣рд╛рдБ, рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд▓рд╛рдЗрдиреЗрдВ, рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред ' рдУрд╣, рдпрд╣ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдерд╛ред) ... рдФрд░ рдлрд┐рд░, ssmtp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╛рдпрд░реНрдб рдореЗрд▓рдмреЙрдХреНрд╕ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред



рдФрд░ рдЕрдм, рдореЗрд▓ рдореЗрдВ рдЯреЗрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╣рд░ рдЬрдЧрд╣ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдПрдХ рд╣реА рдкрд░рд┐рдЪрд┐рдд рдФрд░ рдкреНрд░рд┐рдп рдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ (рдПрдХ рд╣реА TheBat? рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП), рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреА рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреА рдЕрдЧрд▓реА рд▓рдбрд╝рд╛рдИ рдФрд░ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рднрд╛рдЧреНрдпрдкреВрд░реНрдг рдирд┐рд░реНрдгрдпреЛрдВ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд┐рдирд╛ред рдлрд╝рд┐рд▓реНрдЯрд░, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рдЦреЛрдЬ рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рд╕рднреА рд╕рдореГрджреНрдз рдЙрдкрдХрд░рдг, рдЬреЛ рдЯреЗрдк рдХреЛ рдкрдврд╝рдиреЗ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХреБрд╢рд▓ рдмрдирд╛ рджреЗрдВрдЧреЗред



UPD: рдереЛрдбрд╝рд╛ рдХрдВрдШреА рдХрд░рдиреЗ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдкреНрд░рд╕рд╛рд░ рдХрд┐рдпрд╛ред рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдлрд╝реАрдбреНрд╕ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбрд╛рдХ рд╕реЗ рдбрд╛рдХ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдХреНрд░реЛрди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЦреИрд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ред



rsstoemail.pl
 #! /usr/bin/perl use MIME::Base64; $path_temp="/home/media/rsstool"; #    / #          -  , url ,     open(config,"</etc/rss/rsstoemail.conf"); $numb=0; while (!eof(config)) { $strcnf=<config>; $strcnf=~tr/\n//d; (@rss[$numb],@rssname[$numb],@rssfeeds[$numb])=split "#", $strcnf; @rssarcfile[$numb]="@rssname[$numb].rss"; @rssdiffer[$numb]="@rssname[$numb].diff"; $numb=$numb+1; } close config; #          -  , url ,     #       -   foreach $srtname1(@rssarcfile) { if (! -e "$path_temp/$srtname1") { `echo >$path_temp/$srtname1`; } } #       -   #         -  $run=`ps -AH|grep -c rsstoemail.pl`; $run=~tr/\n//d; if ($run ne "1") { exit; } #         -  #    foreach $i(@rss) { #      -  if (@rss[$i] ne "") { $chkdiff=""; #  -    `echo >$path_temp/@rssdiffer[$i]`; printf "run rsstool\n"; #  ,    koi-8,        `/sbin/myscript/rsstool --wget --csv=@ @rssfeeds[$i] | iconv -c -f UTF-8 -t KOI8-R| grep SITE\@DATE\@URL\@TITLE\@DESC -v >$path_temp/feed_new_@rssname[$i].rss`; #      ,     `diff -iaEbwB --strip-trailing-cr $path_temp/@rssarcfile[$i] $path_temp/feed_new_@rssname[$i].rss | grep ^\\>\\ >$path_temp/@rssdiffer[$i]`; #       $chkdiff=`grep \@ $path_temp/@rssdiffer[$i] -c`; $chkdiff=~tr/\n//d; #    -  if ($chkdiff ne "0") { my @toemail = (); my @original = (); #  ,  ,    >   diff #           open(diffopen,"<$path_temp/@rssdiffer[$i]"); while (!eof(diffopen)) { $string = <diffopen>; $string=~s/^(\>\ )//; $string=~tr/\n//d; push (@toemail, $string); push (@original, $string); } close diffopen; #  ,  ,    >   diff #           #    #                 -   $dirr=`date '+%Y-%m-%d-%H_%M_%S'`; $newm=$#toemail+1; printf "$dirr new messages $newm\n"; #                 -   #       foreach $difs(@toemail) { #      #   " $difs=~tr/\"//d; #    $difs=~s/\ $//; $nmf=""; $date=""; $url=""; $bookname=""; $body=""; $resser=""; $ssurl=""; $sndusr=""; #     ($nmf,$date,$url,$bookname,$body)=split '@', $difs; #   ,    #                 if (@rssname[$i] eq "flibusta" or @rssname[$i] eq "librusec") { $body=~m/(.+?)(\ \ )/; $sndusr=$1; $sndusr=~tr/\n//d; } #                 #        url    (    #   proxy.flibusta.net, flibusta.net, www.flibusta.net )    url   if (@rssname[$i] eq "flibusta" or @rssname[$i] eq "flibustanewbooks") { ($resser,$ssurl)=split "\/b\/",$url; $resser=~m/(flibusta.net)/; if ($1 eq "flibusta.net") { $surl="http://flibusta.net/b/$ssurl/download\n"; } else { $surl=$url; } } else { $surl=$url; } #        url    (    #   proxy.flibusta.net, flibusta.net, www.flibusta.net )    url   #            -  -  if (@rssname[$i] eq "flibustanewbooks") { ($book_auth,$book_name,$book_genre)=split "- ",$bookname; $bookname="$book_name - $book_auth - $book_genre"; } #            -  -  #   ,    #     base64        SUBJ: $booknameenc=encode_base64("$bookname my_@rssname[$i]_rss"); $booknameenc=~tr/\n//d; $booknameenc="\=\?KOI8\-R\?B\?$booknameenc\?\="; #     base64        SUBJ: #          sleep 1; $dirr=`date '+%Y-%m-%d-%H_%M_%S'`; #          #             msgrss_2014-05-20-19_26_09       open(fopen,">>$path_temp/mail/msgrss_$dirr"); print fopen "From\:\ fromemail\@domen\.ru\n"; print fopen "To\:\ toemail\@gmail\.com\n"; print fopen "Subject\: $booknameenc\n"; print fopen "MIME-Version: 1.0\n"; print fopen "Content-Type: multipart/mixed;\n"; print fopen " boundary=\"----------12012917B16D15D68\"\n"; print fopen "------------12012917B16D15D68\n"; print fopen "Content-Type: text/plain; charset=koi8-r\n"; print fopen "Content-Transfer-Encoding: 8bit\n"; print fopen "\n"; print fopen "$nmf\n"; print fopen "$surl\n"; print fopen "$bookname\n"; print fopen "\n"; if ($sndusr ne "") { print fopen "sendbyuser:$sndusr\n"; } print fopen "\n"; print fopen "$body\n"; print fopen "\n"; close fopen; #             msgrss_2014-05-20-09_26_09       } #        #            -    `cp $path_temp/@rssdiffer[$i] $path_temp/arhiv/diffnew\_$dirr`; #         -    `echo >>$path_temp/@rssarcfile[$i]`; #         open(arcrss,">>$path_temp/@rssarcfile[$i]"); foreach $difffs(@original) { $difffs=~s/^(\>\ )//; $difffs=~tr/\n//d; print arcrss "$difffs\n"; } close(arcrss); #         } } } printf "start send messages\n"; #         if ($hour eq "04" and $min<"30") { foreach $srtname(@rssarcfile) { `uniq -u $path_temp/$srtname >$path_temp/$srtname.tmp`; `mv -f $path_temp/$srtname.tmp $path_temp/$srtname`; } sleep 1000; } #        
      
      









rsssendemail.pl
 #! /usr/bin/perl #     $path_all="/home/media/rsstool"; #  $path_mail="$path_all/mail"; $path_mail_arhiv="$path_all/mail_arhiv"; $path_arhiv="$path_all/arhiv"; #      _send   @list_dupes=`/sbin/myscript/fdupes -f $path_mail|grep -v send|grep -v \^\$`; #       foreach $fl(@list_dupes) { $fl=~tr/\n//d; `rm -f $fl`; printf "rm dupe $fl\n"; } #       #      _send   @list_files=`ls $path_mail/ |grep -v send`; sleep 5; #       ssmtp      *_send foreach $i(@list_files) { $i=~tr/\n//d; printf "sended $path_mail/$i\n"; `/sbin/myscript/ssmtp toemail\@gmail.com \<$path_mail/$i`; `mv $path_mail/$i $path_mail/$i\_send`; sleep 1; } #       ssmtp      *_send #         @all_files=`ls $path_mail/`; $cont=$#all_files-1000; if ($cont > 0) { printf "bigger 1000 to $cont\n"; for ($y=0; $y<$cont;$y++) { @all_files[$y]=~tr/\n//d; `mv $path_mail/@all_files[$y] $path_mail_arhiv`; printf "@all_files[$y]\n"; } } #        
      
      









rsstoemail.conf
 1#librusec#http://lib.rus.ec/polka/show/all/rss 2#flibusta#http://flibusta.net/polka/show/all/rss 3#nnm#http://nnm.me/rss/ 4#habrahabr#http://habrahabr.ru/rss 5#3dnewssoft#http://www.3dnews.ru/software-news/rss/ 6#3dnewshard#http://www.3dnews.ru/news/rss/ 7#flibustanewbooks#http://flibusta.net/new/rss
      
      












All Articles