Bash脚本,用于通过电子邮件发送特定文件夹中的所有JPG文件

Bash脚本,用于通过电子邮件发送特定文件夹中的所有JPG文件,bash,ubuntu,motion,Bash,Ubuntu,Motion,我正在使用Raspberry Pi(Ubuntu)上的软件Motion连接到网络安全摄像头。当这个摄像头检测到移动时,它会每秒将JPG转储到这个Ubuntu机器上的/tmp/camera文件夹中 运动允许您在保存每张图片(每秒钟一次)或停止移动(在所有图片的末尾)后运行自定义Bash脚本 我想要的是将这些图像发送到我的手机(并最终通过FTP传输)。目前,我正在使用这个选项在每次保存图片时运行一个脚本,使用Ubuntu上的“邮件”来附加最近保存的文件。这不太管用,因为一个“动作”可能有10个图像帧

我正在使用Raspberry Pi(Ubuntu)上的软件
Motion
连接到网络安全摄像头。当这个摄像头检测到移动时,它会每秒将JPG转储到这个Ubuntu机器上的/tmp/camera文件夹中

运动允许您在保存每张图片(每秒钟一次)或停止移动(在所有图片的末尾)后运行自定义Bash脚本

我想要的是将这些图像发送到我的手机(并最终通过FTP传输)。目前,我正在使用这个选项在每次保存图片时运行一个脚本,使用Ubuntu上的“邮件”来附加最近保存的文件。这不太管用,因为一个“动作”可能有10个图像帧,这意味着我收到10封不同的电子邮件

此当前脚本很简单:
on_picture_save echo“在%Y-%m-%d%T处检测到运动”|邮件-a%f-s“主题user@example.com

所以我想我需要一个自定义的Bash脚本,设置为在检测到的运动结束时运行。它需要附加给定文件夹中的所有JPG(未压缩,否则我将无法在我的移动电子邮件客户端上看到它们),然后将它们发送到给定的地址

是否有一种方法可以循环浏览给定文件夹中的所有JPG并附加到单个电子邮件?是否可以确保nullmailer或mail在本地删除图像(或将图像移动到另一个文件夹以便稍后删除)之前正确发送图像

这个脚本可以同时压缩和ftp图像集吗


任何帮助都将不胜感激。

以下是一个场外答案,可能会对您有所帮助:

虽然该页面的作者确切地知道他想在他的电子邮件中使用多少附件,但你似乎不知道,因此他的最终答案(执行一系列由
&&
连接的
uuencode
命令,然后通过管道将其发送到
邮件
)可能不是最适合你的。但看看他的第二个答案:

uuencode file1 first_file >> uu.txt
uuencode file2 second_file >> uu.txt
cat uu.txt | mail -s "a bunch of files" me@mydomain.com
rm uu.txt
您可以轻松地将前两行替换为
for
循环,该循环使用
/tmp/camera
中的每个文件创建
uu.txt

for file in `ls /tmp/camera`; do
  uuencode $file dummyname >> attachments.txt
done

cat attachments.txt | mail -s "Motion Capture Images" me@mydomain.com
至于拉链,这也很容易做到:

cd /tmp/camera
tar czvf MotionCapture.tar.gz *.jpg #or replace jpg with your images' file extension

FTP可能会因为它的交互性而有点困难。我对它没有太多的经验,所以我只在这里告诉你:

文本太多,代码不够。