生物信息学 之 计算表观遗传学分享 http://blog.sciencenet.cn/u/hongbo919 森罗万象是表观, 追根溯源系遗传。 计算精研千淘漉, 生物殿堂乐其间。

博文

Linux下自动加载硬盘并实现数据拷贝的方法

已有 3466 次阅读 2015-2-20 15:40 |个人分类:科研经验|系统分类:科研笔记| Linux, 移动硬盘

问题描述:
近期有个3T硬盘总是连接电脑上自动断电重启,重启的时间大概2分钟。为了将里面的数据备份出,想了很多办法,最后利用Linux提供的计划任务解决。

解决的大体思路:
利用计划任务crontab检测是否cp进程存在,如果不存在,表明移动硬盘已经断掉,应该重新mount,并启动cp程序。

在Ubuntu中实现的具体方法:

1、首先将移动硬盘的UUID添加到/etc/fstab中,以便自动mount

#USB
UUID=2069549f-8984-4556-8f03-da2e76376059 /media/USB/ ext4 defaults 00


2、编写自动mount并重新启动cp的shell脚本,在/software目录下新件一个文本test.sh,并添加下面的内容:

#test.sh
#!/bin/sh
pid=`ps -ef | grep -v grep | grep -v "test.sh" | grep $1 | sed -n  '1P' | awk '{print $2}'`
if[-z $pid ];then
       date
       echo "Reload USB"
       umount /media/USB/
       mount -a
       echo "Start new cp"
       cp -Rvun/media/USB/mysql /media/SeagateBackupDrive/pub3/;cp -Rvun/media/USB/gbdb_Bei /media/SeagateBackupDrive/pub3/
fi

其中grep行用于检测当前是否正在运行某进程(如cp -Rvun ....),如果没有该进程,则重新mount硬盘到/media/USB,并启动新的cp程序

3、添加crontab计划任务(参考http://blog.csdn.net/richerg85/article/details/17887879)
启动crontab文本
crontab -e添加一行,每两分钟判断因此程序是否还在运行cp进程(由于包含cp的进程较多,采用Rvun代替)
*/2 * * * * /software/test.sh Rvun>>/software/time.log重新启动crontab任务
service cron restart此时,即可看到/software/time.log文件中输出了数据拷贝的信息以及中间重启加载硬盘的信息
可以利用tail命令查看程序的进程:
tail --lines=100-f /software/time.log输出如下:
20150206星期五23:04:01 CST
Reload USB
Startnew cp
........
至此,解决了困扰了很久的难题,可以安心去睡觉,静等明天的结果了。ZZZZZZ...




https://blog.sciencenet.cn/blog-97949-869169.html

上一篇:从一则招聘启事看生物信息研究者应掌握的十种能力
下一篇:计算表观遗传小诗一首
收藏 IP: 125.211.30.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 00:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部