文件/目录上传失败时发出警报

文件/目录上传失败时发出警报

我正在使用 Ubuntu,想知道是否有任何方法可以在文件复制/上传操作失败时发出警报。场景如下:

我的计算机/服务器上有文件 xxxxx。但是,每天都会将文件 xxxxx 复制到远程位置的另一台服务器。是否有任何解决方案可以在文件未成功传输时通知我。我正在使用 Zabbix 监控工具。我已经尝试了 diff 函数,但我不想比较两个文件,我只是需要在文件/目录未到达目的地时收到警报。请帮忙,非常紧急。

答案1

根据您的情况,您可以检查用于执行复制的应用程序的退出代码吗?您可以通过 $? 在 bash 中获取此值。例如,如果您使用 scp

# Successful copy
$ scp myFile remote.example.com:.
$ echo $?
0

# Unsuccessful copy
$ scp myFile remote.example.com:.
$ echo $?
1

0 表示成功,非 0 值表示错误,例如复制终止或目标目录不存在。

如果您需要确认文件是否相同,则可以使用 md5sum 命令(或在某些操作系统(如 OS X)上使用 md5 命令)

$ echo "This is a test" > myFile
$ scp myFile remote.example.com:.
$ md5sum myFile # Local value
ff22941336956098ae9a564289d1bf1b  myFile
$ ssh remote.example.com "md5sum myFile"  # Remote value
ff22941336956098ae9a564289d1bf1b  myFile

所有这些都应该很容易添加到您用于执行备份的任何脚本中。

答案2

我是 zabbix 的新手,但我会尽力提供帮助。

如何将文件从一台服务器复制到另一台服务器?如果您可以访问那些复制文件的程序,则可以尝试调用 zabbix_sender 向 Zabbix 服务器发送复制失败的消息,以防在复制文件期间出现异常

https://www.zabbix.com/documentation/2.0/manpages/zabbix_sender

相关内容