![bash 脚本帮助检查 nfs 挂载是否存在](https://linux22.com/image/196356/bash%20%E8%84%9A%E6%9C%AC%E5%B8%AE%E5%8A%A9%E6%A3%80%E6%9F%A5%20nfs%20%E6%8C%82%E8%BD%BD%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%20.png)
我有两台linux服务器;服务器二是服务器一的备份,其中服务器二通过 NFS 安装到服务器一。
我rsnapshot
在服务器一上使用复制/data/
到nfs挂载/bkup
来自服务器二的文件夹。
问题是,如果 nfs/bkup
挂载不存在,rsnapshot 会将 /data {20tb) 复制到根分区 {1tb} 上。
我不想调用一个调用来启动 rsnapshot,而是调用一个备份脚本,该脚本在调用 rsnapshot 之前首先检查所有内容,以防止出现这种情况。我不认为 rsnapshotno_create_root
是相关的,因为该/bkup
文件夹将始终存在。 bash 脚本中会发生以下情况吗? 我希望有人能熟练使用 bash,可以在 2 分钟内将其打出来?我的 bash 写得很糟糕。
if ( showmount -e server_two responds with "/bkup server_two" )
{
if ( check if /bkup is nfs mounted == true )
{
/usr/bin/rsnapshot daily
}
else
{
mount /bkup
if ( check if /bkup is nfs mounted === true )
{
/usr/bin/rsnapshot daily
}
}
}
现在我可以在我的 nfs bkup 安装在 server_one 上运行良好的地方/时间工作
mount | grep bkup
server_two:/bkup on /bkup type nfs4
(rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.2,local_lock=none,addr=192.168.1.1)
df -h | grep bkup
server_two:/bkup 15T 3.0T 12T 21% /bkup
showmount -e server_two
Export list for server_two:
/bkup server_one
答案1
我们的 crontab 有一行类似于
if ! mountpoint -q /mnt/beegfs_backup ;then mount /mnt/beegfs_backup;fi && rsnapshot daily
您可以根据您的脚本进行调整。