рд╣рдо рдкреБрд░рд╛рдиреЗ рд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдХреИрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдн рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ

рдпрд╣ рдкреЛрд╕реНрдЯ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ?
рдПрдХ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдмрд┐рдпрди рдХреЗ рддрд╣рдд рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ рд╕реНрдХреИрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рднреАред

рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдпрд╣ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬреЛ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдореЗрдВ рдХрд╛рдЧрдЬ рдХреЗ рдорд▓рдмреЗ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдореИрдВ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░реВрдВ?
рд╣рд╛рдБ, рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдореИрдВрдиреЗ рд╕реНрдХреИрдирд░ рдореЗрдВ рдХрд╛рдЧрдЬ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд░рдЦрд╛, рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛, рд╕реНрдХреИрдирд┐рдВрдЧ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХрд╛рдЧрдЬ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдирд┐рдХрд╛рд▓ рд▓рд┐рдпрд╛ - рдЧреЛрдЯреЛ 10ред

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

рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдПрдХ Epson рдкреВрд░реНрдгрддрд╛ 1200U рд╕реНрдХреИрдирд░ рджрд┐рдпрд╛ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреВрдПрд╕рдмреА рдкреНрд▓рдЧ-рдЗрди рд╕реНрдХреИрдирд░ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рдеред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ - рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдШрд╛рдд рд╣реИ, рдЗрд╕реЗ 110 рд╡реЛрд▓реНрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдореБрдЭреЗ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдорд┐рд▓рд╛, рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреА рдХреЗ рддрд╣рдд - рд╡рд┐рдВрдбреЛрдЬ 7 рдХреЗ рддрд╣рдд рдХреЛрдИ рдбреНрд░рд╛рдЗрд╡рд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рд╡рд┐рдВрдбреЛрдЬ 7 x64 - рдФрд░ рдЕрдм, рдПрдХ рдореВрд░реНрдЦ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рд╣рд░ рдмрд╛рд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХреА, рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдХреБрдЫ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдкрд╛рд╕ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдХреИрдирд░ рдирд╣реАрдВ рдерд╛ред
* рдмреЗрдИрдорд╛рди рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдбрд╝рд╡рд╛рд╣рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ *

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

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

рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛

рдореИрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рд▓рдЧрд╛рддрд╛ рд╣реВрдВ, рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, /var/log/daemon.log рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рд╕реНрд▓реАрдкрдмреБрдЯрдВрдб рдЦреБрд╢реА рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреВрд▓!
рдФрд░ рдлрд┐рд░ рдХреНрдпрд╛? рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрдкрд╛рджрди / рдЖрджрд┐ / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдорди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ, рдареАрдХ рд╣реИ, рдЗрд╕реЗ рд╕реЗрд╡рд╛ рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред рдХреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛?
рдкрд╣рд▓рд╛ рд╣реИ initscanner.sh.example (рд╣рдо рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ, рдирд╛рдЧрд░рд┐рдХреЛрдВ, рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ, рдЗрд╕реЗ рд╣рдЯрд╛рдПрдВред рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ), рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ рдПрдХ рд╕реНрдХреИрдирд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рдпрд╣ рдЕрдкрдиреА рдмреИрд╕рд╛рдЦреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдХрднреА-рдХрднреА - рд╕реВрдЪрдирд╛рдПрдВ рдФрд░ рд▓реЙрдЧрд┐рдВрдЧред
рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреБрд░рдВрдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдмрдЯрдирдкреНрд░реЗрд╕реНрдб .sh.example, рд╡реЗрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдирд╛рдо рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдлрд┐рд░ рд╕реЗ рд╢рд╛рдирджрд╛рд░ рд╣реИред рд╣рд░ рдмрд╛рд░ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрди рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреИрдирд┐рдВрдЧ рдХрдорд╛рдВрдбреЛрдВ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЦреИрд░, рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдвреЗрд░ рдХрд░реЗрдВред рдкрд╣рд▓рд╛ BASH рдкрд░ рд╣реИред рдЬрдм рдХреЛрдИ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ $ 1 рдФрд░ $ 2 рдХреЗ рд░реВрдк рдореЗрдВ рдмрдЯрди рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдХреИрдирд░ рдирд╛рдо рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕реНрдХреИрдирд░, рдПрдХ рдмрдЯрди рд╣реИ - рдореИрдВ рддрд░реНрдХреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореИрдВ рдЕрднреА рднреА рд╕реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдпрд╛рдж рдЖрдпрд╛ред рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рдмрдЯрдирдкреНрд░реЗрд╕реНрдб.рд╢ - рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреИрдирд┐рдореЗрдЬ рдХрд╣рддреА рд╣реИ, рдЯреАрдЖрдИрдПрдлрдПрдл рдореЗрдВ рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдХреЛ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдЯрд┐рдлрд╝ рдХреЛ jpg рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рджреВрд╕рд░реА рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдореЗрдВ рд╡реНрдпрд╛рдкреНрдд рдирд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд┐рддреНрд░ рдирд╛рдо рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред
рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдЯрдирдкрдЯреЗрдб.рд╢ рд╣реИ
#!/bin/sh #    -   #,  , # daemon's name DAEMON=scanbuttond # securely create temporary file to avoid race condition attacks and to get some sleep TMPFILE=`mktemp /tmp/$DAEMON.XXXXXX` # lock file LOCKFILE="/tmp/$DAEMON.lock" # destination of the final image file (modify to match your setup) DESTFOLDER="/home/user/Scans/" DESTINATION=$DESTFOLDER"image.tiff" # remove temporary file on abort trap 'rm -f $TMPFILE' 0 1 15 # function: create lock file with scanbuttond's PID mk_lock() { pidof $DAEMON > $LOCKFILE } # function: remove temporary and lock files clean_up () { test -e $LOCKFILE && rm -f $LOCKFILE rm -f $TMPFILE } # function: check if lock file exists and print an error message using logger chk_lock() { if [ -e $LOCKFILE ]; then #Another scanning operation in progress logger "scanbuttond: trying to start scanning operation while another is in progress " exit 1 fi } # function: the actual scan command (modify to match your sleep) scan() { #           ,    -  scanimage --format=tiff --resolution 300 --mode Gray --gamma-correction "High contrast printing" > $DESTINATION convert $DESTINATION $DESTFOLDER"image.jpg" logger "Filename: " `python /etc/scanbuttond/convert_scan.py` rm $DESTINATION } chk_lock mk_lock scan clean_up 


рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ Convert_scan.py рд╣реИ
 import os filename = 'image.jpg' directory = "/home/user/Scans" os.chdir(directory) try: filenames = [f for f in os.listdir(directory) if f.endswith('.jpg')] except KeyError: filenames = [] counter = 1 new_filename = 'scan_000.jpg' while new_filename in filenames: new_filename = 'scan_'+str(counter).zfill(3)+'.jpg' counter += 1 print new_filename os.rename(filename, new_filename) 


рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ DESTFOLDER рдЪрд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдмрдЯрди - рддреЛ рддреЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдВрдЬреАрд░ред рдореИрдВрдиреЗ рддреБрд░рдВрдд рдиреАрдВрдж рд╡рд╛рд▓реЗ рд╕рд┐рд░ рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ рдорд╛рдорд▓рд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рд╣реИ, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд╣реАрдВ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдХрд┐ рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреЗрд╡рд▓ 5 рдмрдЬреЗ рддрдХ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдорди рдореЛрдб рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдбреЗрдорди рдХреА рддрд░рд╣ред рдХреНрдпрд╛ рдХрджрдо рдЙрдард╛рдП рдЬрд╛рдПрдВ?
рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреИрдирдмреБрдЯреЛрдВрдб рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрдиреНрдпрд╛рд╕реА рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлреЛрдЯреЛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ / рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рд╕реНрдХреИрди рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
 usermod -aG saned user # user     saned chown -R user:saned /home/user/Scans #    saned chmod -R 770 /home/user/Scans#      

рдирд┐рдЪрд▓рд╛ рд░реЗрдЦрд╛ - рд╕реНрдХреИрдирд░ рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдЗрд╕реЗ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдпрд╣ рд╕реНрдХреИрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рд╕рд╛рдзрди рд▓рд┐рдЦрд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВ рд╕реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдП!


рдЕрд░реНрдерд╛рддреН:
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНтАНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНтАНрдХреИрди рдХрд░реЗрдВред рдореИрдВ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░реВрдВ?

 >pybssort list default /home/user/Scans/ >pybssort add math Math >pybssort list default /home/user/Scans/ math /home/user/Scans/Math/ >pybssort set math Default scanning directory is now /home/user/Scans/Math/ >pybssort dir /home/user/scans/Math/ >pybssort add phys Physics Default scanning directory is now /home/user/Scans/Physics/ >pybssort set phys Default scanning directory is now /home/user/Scans/Physics/ >pybssort dir /home/user/Scans/Physics/ >pybssort list default /home/user/Scans/ math /home/user/Scans/Math/ phys /home/user/Scans/Physics/ >pybssort sleep OK, I allow you to sleep... No, wait, finish your article! >pybssort del math OK >pybssort list default /home/user/Scans/ phys /home/user/Scans/Physics/ 


рд╕реНрдХреИрди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА, рдРрдб, рдбреЗрд▓, рд╕реЗрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Dir рдХрдорд╛рдВрдб - рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ?

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


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

рдЖрдЦрд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ?

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдоред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЙрдиреНрд╣реЗрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджреЗрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдВрджрд░реНрдн рдЖрдо рддреМрд░ рдкрд░ рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдХреА рддрд░рд╣ рдерд╛ред рдЗрди рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдореВрд▓ рд╕реЗрдЯ рд╣реИ, рдЦрд░реЛрдВрдЪ рд╕реЗ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди (рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдмрдирд╛рддрд╛ рд╣реИ), рдЖрдк рдХреЛрд░реЛрд╡реЗрдиреНрд╕ рдХреЛ рд▓реВрдЯ рд╕рдХрддреЗ рд╣реИрдВ ... рдЖрдк рд╕реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЦрд┐рд░рдХрд╛рд░ ... рдореИрдВ рд╡реЗрдмрдХреИрдо рдврд╛рдВрдЪреЗ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддрд╛ рд╣реВрдВ , рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЕрдкрдирд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдЫреЛрдЯреЗ рдЕрдиреБрдорд╛рдиред
рд╕реНрд▓реАрдкрд▓рд╛рдЗрдЯ 3 sqlite3 рдмрд┐рд▓реНрдЯ-рдЗрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдореИрдВ рдХреЗрд╡рд▓ web.database рд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрдпреЛрдВ рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ? рдЬрд╡рд╛рдм рд╕рд░рд▓ рд╣реИ - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЖрд▓рд╕реНрдп рд╣реИред рдореИрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ SQLite рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рддрд▓реНрд▓реАрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдВрджрд░реНрдн рдореВрд▓реНрдпреЛрдВ (рдирд╛рдо, рдлрд╝реЛрд▓реНрдбрд░) рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рд╕рдВрдШ, рдореБрдЭреЗ db.insert ('рд╕рдВрджрд░реНрдн', рдирд╛рдо = рдирд╛рдо, рдлрд╝реЛрд▓реНрдбрд░ = рдлрд╝реЛрд▓реНрдбрд░) рдФрд░ рдиреАрдВрдж рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рдЗрд╕реАрд▓рд┐рдП рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░-рд╡реЗрдмрдкреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрддрд╛рдП (рдореИрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ), рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИ:

gist.github.com/CRImier/7330722

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
 wget https://gist.github.com/CRImier/7330722/raw/pybssort.py #     nano pybssort.py chmod +x pybssort.py mv pybssort.py /usr/local/bin/pybssort 


рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ - рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕реЗ рд░реВрдЯ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ / var / lib рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, рдПрдХ рд░реВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдЖрдкрдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рд╕реЗ рдЦрд░рд╛рдм рд╕рд╛рдиреЗрдВ рдЬрд▓рддреЗ рдЖрдБрд╕реВ рдХреЗ рд╕рд╛рде рд░реЛрдПрдВрдЧреЗред рдЖрдк рдЙрд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣реИ рдирд╛?

рдФрд░ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП? рд╣рд╛рдВ, рдмрд╕ рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдкрдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб DESTINATION рдХреЗ рдмрдЬрд╛рдп 'pybssort dir' рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ
 ... # destination of the final image file (modify to match your setup) DESTFOLDER=`pybssort dir` DESTINATION=$DESTFOLDER"image.tiff" ... # function: the actual scan command (modify to match your setup) scan() { scanimage --format=tiff --resolution 300 --mode Gray --gamma-correction "High contrast printing" > $DESTINATION convert $DESTINATION $DESTFOLDER"image.jpg" logger "Filename: " `python /etc/scanbuttond/convert_scan.py $DESTFOLDER` rm $DESTINATION } ... 


рджреВрд╕рд░реА рд▓рд┐рдкрд┐
 import os import sys #    ... directory = sys.argv[1] 



рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
 service scanbuttond stop sudo -u saned scanbuttond -f & tail -f /var/log/messages & tail -f /var/log/daemon.log & 

рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рдЗрдХреЛ, рд▓реЙрдЧрд░ рдФрд░ рдкреНрд░рд┐рдВрдЯ (рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

рдпреБрдкреАрдбреА:

рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдпрд╣ BASH рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдЭреЗ рдмрд╣реБрдд рдЦрд░рд╛рдм рд▓рдЧреА - рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рдЗрдерди рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред рдпрд╣ рдЕрдВрдд рдореЗрдВ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ - рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ + рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЧ, рдСрдбрд┐рдпреЛ рдЕрд▓рд░реНрдЯ, рдФрд░ рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рдХреЛрдб рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ =) рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рд░реАрдбрдореА рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ =)

Source: https://habr.com/ru/post/In201028/


All Articles