Lue myös: https://puolanka.info/goto/sent-mail-kansio-nakyviin-thunderbird-sahkopostiohjelmassa/
1. Asenna Mutt-sähköpostiohjelma
sudo apt-get install mutt cyrus-common libsasl2-2 libsasl2-modules libsasl2-modules-db imagemagick img2pdf mkvtoolnix
mkdir -p ~/.mutt/cache/headers
mkdir ~/.mutt/cache/bodies
touch ~/.mutt/certificates
2. Tee $HOME/.muttrc -tiedosto
# ================ IMAP =====================
set editor = "nano" # Aseta suosikkieditori.
set edit_headers = yes # Katso otsikot muokkataessa
set charset = UTF-8 # arvo $LANG
set editor = "nano" # Aseta suosikkieditori.
set imap_user = johndoe@jotain.com # käytä oikeaa käyttäjää
set imap_pass = salasana-tähän # käytä oikeaa salasanaa
set spoolfile = imaps://imap-server-here/INBOX # käytä oikeaa imap-palvelinta
set folder = imaps://imap-server-here/ # käytä oikeaa imap-palvelinta
set record="imaps://imap-server-here/Sent Mail" # käytä oikeaa imap-palvelinta
set postponed="imaps://imap-server-here/Drafts" # käytä oikeaa imap-palvelinta
set mbox="imaps://imap-server-here/All Mail" # käytä oikeaa imap-palvelinta
set header_cache = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = "~/.mutt/certificates"
# ================ SMTP =====================¨
## Lähetysvaihtoehdot.
set smtp_url=smtps://email-address@jotain.com:password-here@smtp-server-here:465/ # käytä oikeaa smtp-palvelinta
set realname='Käyttäjä X' # käytä oikeaa nimeä
set from=johndoe@jotain.com # käytä oikeaa osoitetta
set hostname="mutt@mutt" # käytä jotain isäntänimeä
set signature="John Doe" # # käytä jotain nimeä
# Yhteysvaihtoehdot
set ssl_force_tls = yes
unset ssl_starttls
set use_from = yes
set copy = no
# =================================================
## Muttin asennuksen jälkeen on ensin suoritettava Mutt komentorivin kautta ja kirjoitettava ja lähetettävä testisähköposti sertifikaattien saamiseksi.
# =================================================
# Jos saat todennusvirheen liitettä lähetettäessä, asenna postifix-paketti ja valitse Internet-operaattoriksi ”paikallinen”.
===================================================
3. Tee kaksi kansiota
mkdir -p $HOME/motion
mkdir -p $HOME/Kuvat/posti
==================================================
4. Asenna Motion
sudo apt install motion
Muokkaa /etc/motion/motion.conf-tiedostoa ja tee kaksi skriptiä, joista ensimmäinen skripti käynnistää Muttin, jos Motion on luonut kuvia.
==================================================
check-motion-folder scripti
#!/bin/bash
# RJP 15.4.2025 loop test if motion folder has pictures
# Gap in seconds of no motion detected that triggers the end of an event.
#event_gap 30
## /home/username/motion is the path for motion pictures
# Target directory for pictures, snapshots and movies
#target_dir /home/username/motion
# Picture output configuration parameters
#################################################
# Output pictures when motion is detected
#picture_output off
#################################################
# Create movies of motion events.
#movie_output on
#################################################
while true; do
if [ -z "$( ls -A '/home/username/motion' )" ]; then ## replace username using real user name
echo "Empty"
else
echo "Not Empty"
#./run-mutt
./frefress-motion-folder ## if there has no internet connection
# creating backup from $HOME/motion daily
##./run-mutt-pdf ## a good option, but filesize can be large
./run-mutt-video
fi
sleep 50
done
==================================================
run-mutt scripti
#!/bin/bash
aika=$(date "+%F-%H-%M")
mkdir -p $HOME/Kuvat/posti
mv $HOME/motion/*.jpg $HOME/Kuvat/posti && cd $HOME/Kuvat/posti && convert -append *.jpg valvontakuva.jpg
mutt -s "Valvontakuvia" -a $HOME/Kuvat/posti/valvontakuva.jpg -- email-address@jotain.com < /dev/null
sleep 1 && mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika
## replace email-address@jotain.com using real email-address
=================================================
Jos imagemagick tekee liian korkean tai leveän kuvan, se ei voi muuntaa sitä yhdeksi kuvaksi, joten parempi muuntaa kuvat pdf-tiedostoksi.
================================================
run-mutt-pdf scripti
#!/bin/bash
# RJP 17.4.2025 run mutt if pictures are detected
# sendind as pdf if imagemagick chokes
aika=$(date "+%F-%H-%M")
mkdir -p $HOME/Kuvat/posti
mv $HOME/motion/*.jpg $HOME/Kuvat/posti && img2pdf $HOME/Kuvat/posti/*.jpg -o $HOME/Kuvat/posti/valvontakuva.pdf && sleep 3 && \
mutt -s "Valvontakuvia" -a $HOME/Kuvat/posti/valvontakuva.pdf -- email-address@jotain.com < /dev/null && sleep 1 && \
rm $HOME/Kuvat/posti/valvontakuva.pdf && sleep 1 && mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika
## replace email-address@jotain.com using real email-address
=============================================
Kaikkein paras on kuitenkin käyttää videoa, eli /etc/motion/motion.conf tiedoston perusasetusta. Videoista tulee ihan siedettävän kokoisia ja laatuisia.
run-mutt-video scripti
#!/bin/bash
# RJP 21.4.2025 run mutt if pictures are detected
# sending video.mkv file
#
aika=$(date "+%F-%H-%M")
mkdir -p $HOME/Kuvat/posti
mv $HOME/motion/*.mkv $HOME/Kuvat/posti && mv $HOME/Kuvat/posti/*.mkv $HOME/Kuvat/posti/valvontavideo.mkv && sleep 3 && \
mutt -s "Valvontavideo" -a $HOME/Kuvat/posti/valvontavideo.mkv -- email-address@jotain.com < /dev/null && sleep 1 && \
mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika && sleep 30
## replace email-address@jotain.com using real email-address
PS. WordPress näyttää koodit väärin, joten katso oikeat koodit liitetiedostosta!
# ===========================================
Vihje: # Käytä movie_filename %t-%v-%Y%m%d%H%M asetusta /etc/motion.motion.conf tiedostossa.
# (File name(without extension) for movies relative to target directory
# movie_filename %t-%v-%Y%m%d%H%M%S )
==============================================
Muokkaus 23.4.2025: Paremmat scriptit videon lähetykseen!
run-mutt-video2 scripti
#!/bin/bash
# RJP 23.4.2025 run mutt if pictures are detected
# sending video.mkv file
#
aika=$(date "+%F-%H-%M")
mkdir -p $HOME/Kuvat/posti
mv $HOME/motion/*.mkv $HOME/Kuvat/posti && mv $HOME/Kuvat/posti/*.mkv $HOME/Kuvat/posti/valvontavideo-$aika.mkv && sleep 3 && \
mutt -s "Valvontavideo" -a $HOME/Kuvat/posti/valvontavideo-$aika.mkv -- email-address@jotain.com < /dev/null && sleep 1 && \
mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika && sleep 30
## replace email-address@jotain.com using real email-address
PS. WordPress näyttää koodit väärin, joten katso oikeat koodit liitetiedostosta!
#===========================================
5. Aseta komentosarjat suoritettaviksi ja lisää tarvittaessa check-motion-kansio käynnistykseen.
chmod +x check-motion-folder
chmod +x run-mutt
chmod +x run-mutt-pdf
chmod +x run-mutt-video
chmod +x run-mutt-video2
chmod +x frefress-motion-folder
chmod +x start-motion
chmod +x stop-motion
chmod +x stop-motion
chmod +x loop-run
chmod +x stage1
chmod +x stage2
chmod +x check--run-loop-process-state
============================================
Testaa, onko scripti tai ohjelma käynnissä
check-process-state scripti
#!/bin/bash
# RJP 18.4.2025 check-motion-folder running test
x-terminal-emulator -e /bin/bash -c '(ps -ef|grep -v grep|grep check-motion-folder > /dev/null && echo "check-motion-folder is running" || echo "check-motion-folder is not running") ; exec bash' && read -p \"
#################################################
########## running test ######################
#################################################\"" &
#!/bin/bash
# RJP 22.4.2025 run-loop running test
x-terminal-emulator -e /bin/bash -c '(ps -ef|grep -v grep|grep loop-run > /dev/null && echo "loop-run is running" || echo "loop-run is NOT running") ; exec bash' && read -p \"
#################################################
########## running test ######################
#################################################\"" &
#==========================================
Pysäytä check-motion-folder scripti ja loop-run scripti
#!/bin/bash
killall check-motion-folder
killall loop-run
#=========================================
start-motion scripti
#!/bin/bash
# RJP 18.4.2025 start motion manually if is not set in rc.local , etc
x-terminal-emulator -e /bin/bash -c "sudo motion && read -p \"
#################################################
########## motion stopped ######################
#################################################\"" &
#===========================================
stop-motion scripti
#!/bin/bash
# RJP 18.4.2025 stop motion manually
x-terminal-emulator -e /bin/bash -c "sudo killall motion && read -p \"
#################################################
########## motion should be stopped ######################
#################################################\"" &
#============================================
# Jos haluat käynnistää motionin tavallisena käyttäjänä, muokkaa sudoers-tiedostoa kuten
# username-here ALL=(ALL) NOPASSWD: /usr/bin/motion # toimii komentosarjoilla, joissa on "sudo"
#============================================
jos Internet-yhteyttä ei ole, luo varmuuskopio $HOME/motionista päivittäin.
Tämä vaihtoehto on otettava käyttöön kommentoimalla (poistamalla #) check-motion-folder-skriptistä (./frefress-motion-folder).
#============================================
frefress-motion-folder scripti
#!/bin/bash
# RJP 19.4.2025 # ./frefress-motion-folder ## if there has no internet connection
# creating backup from $HOME/motion daily
aika=$(date "+%Y-%m-%d")
cd $HOME/motion && \
ls -l | awk '{print $6,$7,$8,$9}' && \
stat -c %y $HOME/motion | cut -d" " -f1 > /tmp/vanha && \
date "+%Y-%m-%d" > /tmp/nykyinen && \
pwd && \
if [[ $(cat /tmp/vanha) == $(cat /tmp/nykyinen) ]]
then
echo "today created motion folder"
else
echo "old motion folder, creating new and backup from old"
mv $HOME/motion $HOME/motion-$aika && mkdir -p $HOME/motion
fi
#=============================================
Mahdolliset ongelmatilanteet!
Kuitenkin on olemassa myös sellainen vaihtoehto, että sähköpostilaatikko on täynnä tai on jokin muu verkkoon liittyvä ongelma, niin silloin on parempi käyttää loop-scriptiä, joka resetoi kansiot noin minuutin välein. Loop scriptissä ajetaan kahta eri scriptiä vuorottain.
=============================================
loop-run scripti
#!/bin/bash
# RJP 22.4.2025 looping two scripts every 30 seconds
# This scipt is controlling stage 1 and stage2 scripts
# 23.4.2025 sleep added to run-mutt-video file
while true; do
killall stage2
./stage1
echo "stage1"
sleep 30 # jos videot eivät ehdi tulla täyspituisina sähköpostiin, niin lisää aikaa sleep komentoon
killall stage1
./stage2
echo "stage2"
done
========================================
stage1 scripti
#!/bin/bash
# RJP 22.4.2025 If there has some network or sending problems
# stage1 and stage2 scripts clears and re-creates sending process
aika=$(date "+%F-%H-%M-%S")
mkdir -p $HOME/motion
mkdir -p $HOME/Kuvat/posti
if [ -z "$( ls -A '/home/usename/motion' )" ] ## replace username using real user name
then
echo "Empty"
else
echo "Not Empty"
./run-mutt-video
mv $HOME/motion $HOME/motion-$aika
mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika
sleep 2
mkdir -p $HOME/motion
mkdir -p $HOME/Kuvat/posti
sleep 1
fi
=====================================
stage2 scripti
#!/bin/bash
# RJP 22.4.2025 If there has some network or sending problems
# stage1 and stage2 scripts clears and re-creates sending process
aika=$(date "+%F-%H-%M-%S")
mkdir -p $HOME/motion
mkdir -p $HOME/Kuvat/posti
if [ -z "$( ls -A '/home/username/Kuvat/posti' )" ] ## replace username using real user name
then
echo "Empty"
else
echo "Not Empty"
./run-mutt-video
mv $HOME/motion $HOME/motion-$aika
mv $HOME/Kuvat/posti $HOME/Kuvat/posti-$aika
sleep 2
mkdir -p $HOME/motion
mkdir -p $HOME/Kuvat/posti
sleep 1
fi
Videosta voi tehdä myös erillisen tiedoston, jonka voi lähettää sähköpostiin vaikka ajoitetusti (crontab) joka päivä vaikka uusia kuvia ei tulisikaan. Esimerkki:
#!/bin/bash
# RJP 25.4.2025 backup and send all videos via cron script
# https://www.linux.fi/wiki/Komentojen_ajastaminen
# https://netisto.fi/oppaat/linux/18.htm
aika=$(date "+%F-%H-%M-%S")
mkdir -p $HOME/BACKUP
sleep 1
find $HOME/Kuvat -iname "posti*" -exec mv -t $HOME/BACKUP {} +
sleep 5
tar cjf kaikkivideot-$aika.tar.bz2 $HOME/BACKUP
sleep 20
mutt -s "kaikkivideot" -a kaikkivideot-$aika.tar.bz2 -- email-address@jotain.com < /dev/null && \
sleep 60 && \
mv $HOME/BACKUP $HOME/BACKUP-$aika
https://www.linux.fi/wiki/Komentojen_ajastaminen
https://netisto.fi/oppaat/linux/18.htm
Esimerkki crontab ohjelman käytöstä:
crontab -e
.... johon lisätty rivit
# suorittaa komennon joka päivä kello 7
0 7 * * * export DISPLAY=:0.0 && /home/usename/kaikkivideot.sh