我必须使用 cronjob 执行备份任务并使用 bash 脚本执行备份操作来定期备份服务器的数据库。这是一个 PHP Web 应用程序。您可以选择将备份文件存储在服务器硬盘上或外部 USB 闪存驱动器或硬盘上。
用户可以从网页应用程序添加备份任务并进行编辑,该应用程序旨在显示所有已保存的备份任务及其所有信息:
服务器 - 数据库 - 表 - 目标服务器 - 目标存储 - 天 - 小时 - 分钟
所有这些都保存在一个 xml 文件中,并显示在表格中。您可以在该页面的表格中添加、编辑或删除任务。
USB 驱动器应该自动安装在远程服务器上,然后 PHP 应用程序应该告诉用户何时有驱动器可用于保存目标存储等于 USB 的任务。
我有一个 bash 脚本,每次在一个服务器上手动执行此操作。我在 Virtual Box 客户机上使用 CentOS。我的 Virtual Box 主机是 Ubuntu,我还是个初学者。我需要你帮助我使用命令。
我目前有一个获取 usb 名称(而不是其 id)的命令,如下所示:
# Get USB stick count, name and size
dec_count=`fdisk -l | tr -s ' ' | grep 'Disk /' -c`
fdisk -l | tr -s ' ' | grep 'Disk /' | cut -f3 -d'/' | cut -f1 -d',' | sed -n "2,$dec_count p"
这是因为我需要为每个 USB 驱动器提供一个唯一的 ID,而不是 Linux 为其指定的名称(如 sdb)。
那么,我的 PHP 应用程序如何知道是否有可用的 USB 驱动器?应该由 cronjob 来做这件事还是应该用 PHP 来做?
我是否正确对待了这个问题?任何帮助链接或建议都欢迎。需要尽快完成。
提前致谢。
答案1
您可以使用 Cron 作业每分钟运行脚本,而不仅仅是在预定的时间运行。第一个字段是“分钟”。
如果在此字段中指定 *,它将每分钟运行一次:
* * * * * /home/user/script.sh
如果在第一个字段中指定 */5,则每 5 分钟运行一次:
*/5 * * * * /home/user/script.sh