История изменений
Исправление futurama, (текущая версия) :
вот что у меня сейчас работает
#!/bin/sh
LANG=C
PATH=/bin:/usr/bin:/usr/lib/nagios/plugins
if [ $# -lt 1 ]; then
echo "Usage: $0 <cam number [1|2|3]>"
exit 1
fi
CAMNUM="$1"
if [ "$CAMNUM" -eq 1 ]; then
IP='10.0.0.202'
elif [ "$CAMNUM" -eq 2 ]; then
IP='10.0.0.201'
elif [ "$CAMNUM" -eq 3 ]; then
IP='10.0.0.203'
else
echo "Unknown cam number: \"$CAMNUM\""
exit 1
fi
echo "Start on cam N${CAMNUM}, IP=$IP"
while :; do
if check_ping -H "$IP" -w 10,25% -c 20,50% -t 10 >/dev/null 2>/dev/null; then
# 2016-07-29
DATE=$(date '+%F')
START=$(date '+%H-%M-%S')
mkdir -p /Cams/cam0$CAMNUM/$DATE
timeout -k 5 305 ffmpeg -rtsp_transport tcp -i 'rtsp://'"$IP"'/user=admin&password=&channel=1&stream=0' -r 30 -vcodec copy -an -t 300 "/Cams/cam0$CAMNUM/$DATE/hms_${START}.mp4" </dev/null >/dev/null 2>/dev/null
sleep 1
else
echo "$DATE $START : No ping to camera N${CAMNUM}, \"${IP}\""
sleep 60
fi
done
$ df -h /Cams/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg2-cam01 2.0T 1.8T 205G 91% /Cams
$ ls /Cams/
cam01 cam02 cam03
$ ls /Cams/cam02
2017-10-26 2017-10-28 2017-10-30 2017-11-01 2017-11-03 2017-11-05 2017-11-07
2017-10-27 2017-10-29 2017-10-31 2017-11-02 2017-11-04 2017-11-06 2017-11-08
$ crontab -l | grep capture
10 0 * * * /home/user/bin/remove_old_capture.sh
$ cat /home/user/bin/remove_old_capture.sh
#!/bin/sh
BASEDIR='/Cams'
set -e
exec >> /var/tmp/remove_old_capture.log
exec 2>> /var/tmp/remove_old_capture.err
while :; do
/usr/lib/nagios/plugins/check_disk -w 5% -c 3% "$BASEDIR" && exit 0
for d1 in $BASEDIR/cam*; do
d2=`ls -1tr "$d1" | head -1`
if [ -d "$d1/$d2" ]; then
rm -rf "$d1/$d2"
fi
done
done
exit 0
Исправление futurama, :
вот что у меня сейчас работает
#!/bin/sh
LANG=C
PATH=/bin:/usr/bin:/usr/lib/nagios/plugins
if [ $# -lt 1 ]; then
echo "Usage: $0 <cam number [1|2|3]>"
exit 1
fi
CAMNUM="$1"
if [ "$CAMNUM" -eq 1 ]; then
IP='10.0.0.202'
elif [ "$CAMNUM" -eq 2 ]; then
IP='10.0.0.201'
elif [ "$CAMNUM" -eq 3 ]; then
IP='10.0.0.203'
else
echo "Unknown cam number: \"$CAMNUM\""
exit 1
fi
echo "Start on cam N${CAMNUM}, IP=$IP"
while :; do
if check_ping -H "$IP" -w 10,25% -c 20,50% -t 10 >/dev/null 2>/dev/null; then
# 2016-07-29
DATE=$(date '+%F')
START=$(date '+%H-%M-%S')
mkdir -p /Cams/cam0$CAMNUM/$DATE
timeout -k 5 305 ffmpeg -rtsp_transport tcp -i 'rtsp://'"$IP"'/user=admin&password=&channel=1&stream=0' -r 30 -vcodec copy -an -t 300 "/Cams/cam0$CAMNUM/$DATE/hms_${START}.mp4" </dev/null >/dev/null 2>/dev/null
sleep 1
else
echo "$DATE $START : No ping to camera N${CAMNUM}, \"${IP}\""
sleep 60
fi
done
$ df -h /Cams/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg2-cam01 2.0T 1.8T 205G 91% /Cams
$ ls /Cams/
cam01 cam02 cam03
$ ls /Cams/cam02
2017-10-26 2017-10-28 2017-10-30 2017-11-01 2017-11-03 2017-11-05 2017-11-07
2017-10-27 2017-10-29 2017-10-31 2017-11-02 2017-11-04 2017-11-06 2017-11-08
$ crontab -l | grep capture
10 0 * * * /home/user/bin/remove_old_capture.sh
$ cat /home/sergey/bin/remove_old_capture.sh
#!/bin/sh
BASEDIR='/Cams'
set -e
exec >> /var/tmp/remove_old_capture.log
exec 2>> /var/tmp/remove_old_capture.err
while :; do
/usr/lib/nagios/plugins/check_disk -w 5% -c 3% "$BASEDIR" && exit 0
for d1 in $BASEDIR/cam*; do
d2=`ls -1tr "$d1" | head -1`
if [ -d "$d1/$d2" ]; then
rm -rf "$d1/$d2"
fi
done
done
exit 0
Исходная версия futurama, :
вот что у меня сейчас работает
#!/bin/sh
LANG=C
PATH=/bin:/usr/bin:/usr/lib/nagios/plugins
if [ $# -lt 1 ]; then
echo "Usage: $0 <cam number [1|2]>"
exit 1
fi
CAMNUM="$1"
if [ "$CAMNUM" -eq 1 ]; then
IP='10.0.0.202'
elif [ "$CAMNUM" -eq 2 ]; then
IP='10.0.0.201'
elif [ "$CAMNUM" -eq 3 ]; then
IP='10.0.0.203'
else
echo "Unknown cam number: \"$CAMNUM\""
exit 1
fi
echo "Start on cam N${CAMNUM}, IP=$IP"
while :; do
if check_ping -H "$IP" -w 10,25% -c 20,50% -t 10 >/dev/null 2>/dev/null; then
# 2016-07-29
DATE=$(date '+%F')
START=$(date '+%H-%M-%S')
mkdir -p /Cams/cam0$CAMNUM/$DATE
timeout -k 5 305 ffmpeg -rtsp_transport tcp -i 'rtsp://'"$IP"'/user=admin&password=&channel=1&stream=0' -r 30 -vcodec copy -an -t 300 "/Cams/cam0$CAMNUM/$DATE/hms_${START}.mp4" </dev/null >/dev/null 2>/dev/null
sleep 1
else
echo "$DATE $START : No ping to camera N${CAMNUM}, \"${IP}\""
sleep 60
fi
done
$ df -h /Cams/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg2-cam01 2.0T 1.8T 205G 91% /Cams
$ ls /Cams/
cam01 cam02 cam03
$ ls /Cams/cam02
2017-10-26 2017-10-28 2017-10-30 2017-11-01 2017-11-03 2017-11-05 2017-11-07
2017-10-27 2017-10-29 2017-10-31 2017-11-02 2017-11-04 2017-11-06 2017-11-08
$ crontab -l | grep capture
10 0 * * * /home/user/bin/remove_old_capture.sh
$ cat /home/sergey/bin/remove_old_capture.sh
#!/bin/sh
BASEDIR='/Cams'
set -e
exec >> /var/tmp/remove_old_capture.log
exec 2>> /var/tmp/remove_old_capture.err
while :; do
/usr/lib/nagios/plugins/check_disk -w 5% -c 3% "$BASEDIR" && exit 0
for d1 in $BASEDIR/cam*; do
d2=`ls -1tr "$d1" | head -1`
if [ -d "$d1/$d2" ]; then
rm -rf "$d1/$d2"
fi
done
done
exit 0