作死了, usr 给拷丢了!!!有办法恢复么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
loveminds
V2EX    Linux

作死了, usr 给拷丢了!!!有办法恢复么

  •  1
     
  •   loveminds
    minmemory 2015-07-22 06:08:09 +08:00 7801 次点击
    这是一个创建于 3814 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是先建了一个fakeusr做中转
    mount /dev/sda2 /fakeusr
    然后直接mv -f /usr/* /fakeusr/
    结果等我umount之后再重新
    mount /dev/sda2 /usr
    瞬间惊呆
    ls -al /usr
    total 28
    drwxr-xr-x 4 root root 4096 Jul 22 05:47 .
    dr-xr-xr-x. 23 root root 4096 Jul 22 06:03 ..
    drwx------ 2 root root 16384 Jul 22 05:40 lost+found
    drwx------. 17 nginx root 4096 Jul 22 05:47 uwsgi_temp

    尼玛usr/local /usr/share等一堆东西被移到异次元去了???
    现在是否还有办法恢复!!!

    第 1 条附言    2015-07-22 09:06:47 +08:00
    已经恢复,mv这货,没有目标的时候,它会自己臆想一个目标,然后就...跑到当前目录最后一个文件夹去了
    61 条回复    2015-09-28 15:34:51 +08:00
    loveminds
        1
    loveminds  
    OP
       2015-07-22 06:13:53 +08:00
    另外查了下还有一条在家目录不小心手滑敲上的mv /usr/*
    不知道有没影响,分区表还有备份(我备份的是整个sda的mbr)
    ming2050
        2
    ming2050  
       2015-07-22 06:42:41 +08:00 via Android
    为妹子顶一个
    loveminds
        3
    loveminds  
    OP
       2015-07-22 07:15:35 +08:00
    终于找到了,全跑/usr/uwsgi_temp里去了
    ming2050
        4
    ming2050  
       2015-07-22 07:33:47 +08:00 via Android
    话说你起的挺早
    canky
        5
    canky  
       2015-07-22 08:07:13 +08:00 via iPhone
    妹子好评啊
    DearTanker
        6
    DearTanker  
       2015-07-22 08:21:21 +08:00   1
    曾经我给楼主的免费煮机捐赠过,那时穷,才捐了¥50好像,掩面~~~
    YORYOR
        7
    YORYOR  
       2015-07-22 08:56:50 +08:00
    妹子好评!
    mcfog
        8
    mcfog  
       2015-07-22 09:00:55 +08:00
    这个故事告诉我们,跨分区的mv和rm是一路货色,嗯嗯
    frozenshadow
        9
    frozenshadow  
       2015-07-22 09:01:11 +08:00
    PL妹子好评~
    inmyfree
        10
    inmyfree  
       2015-07-22 09:02:45 +08:00
    妹子女神起的好早啊....
    loveminds
        11
    loveminds  
    OP
       2015-07-22 09:03:16 +08:00
    @mcfog 其实也不是,只是如果mv没有目标,它就会耍流氓
    mN71eOOprFyMsnPx
        12
    mN71eOOprFyMsnPx  
       2015-07-22 09:12:18 +08:00
    多年的经验告诉我,不要用mv,不要用mv。

    硬盘读取不了数据的时候,复制数据库的时候,用mv只要有意外。就会死的难看。

    最好是rsync。
    Radeon
        13
    Radeon  
       2015-07-22 09:14:25 +08:00
    大批量文件操作用GUI文件管理器会更安全
    xiaobu
        14
    xiaobu  
       2015-07-22 09:44:20 +08:00
    @FifiLyu mv毕竟速度快,rsync和cp不是什么时候磁盘空间都够这么搞
    ekeyme
        15
    ekeyme  
       2015-07-22 10:00:02 +08:00 via iPhone
    @FifiLyu cp后 rm如何?
    nantmpeter
        16
    nantmpeter  
       2015-07-22 10:15:33 +08:00
    但mv的效率比cp高太多了。。。谨慎使用就好
    tt88050643
        17
    tt88050643  
       2015-07-22 10:22:52 +08:00
    楼主怎么操作的?RHEL会显示missing destination file operand after ......
    frankzeng
        18
    frankzeng  
       2015-07-22 10:44:13 +08:00
    做事留一手,日后好恢复,运维工程师的惨痛教训。
    wudaown
        19
    wudaown  
       2015-07-22 11:00:11 +08:00 via iPhone
    围观妹子
    zhicheng
        20
    zhicheng  
       2015-07-22 11:11:10 +08:00
    跟大家讲一下 Unix 系统,在可能会改变系统的情况下,不要在参数里使用 * 。
    mv -f /usr/* /fakeusr/
    这个命令里的 * 并不是 mv 来处理的,是由 shell 把这个参数改成
    mv -f /usr/bin /usr/lib /usr/share /fakeuser
    这个才是最终执行的命令,所以在出错的时候,可能会很陌名其妙。cp 命令一样。
    其实正确的姿势不加 * 也一样能实现效果。。。

    Unix 的这个缺陷一定要记住。

    底下是广告

    欢迎大家使用 TextArea.com 来记录自己学到的新东西
    lonelinsky
        21
    lonelinsky  
       2015-07-22 11:14:02 +08:00
    没看明白:

    mv -f /usr/* /fakeusr/ 这句的时候是在什么目录下执行的?这个是有目标的,所以不是这句闯的货吧。

    另外查了下还有一条在家目录不小心手滑敲上的mv /usr/* : 所以其实是这句闯的祸?执行的时候上面一句的mv -f /usr/* /fakeusr 已经执行过了?

    @loveminds
    Draplater
        22
    Draplater  
       2015-07-22 11:47:19 +08:00   4
    @lonelinsky 你敲一个mv /usr/*,shell会自动展开为:
    mv /usr/bin /usr/etc /usr/games /usr/include /usr/lib /usr/lib32 /usr/lib64 /usr/libexec /usr/local /usr/portage /usr/sbin /usr/share
    所以东西都被移到了最后一个文件夹,即/usr/share。
    mN71eOOprFyMsnPx
        23
    mN71eOOprFyMsnPx  
       2015-07-22 11:59:00 +08:00
    @xiaobu mv因为出现意外的时候,数据没移动完,数据损坏只有傻眼了。
    @ekeyme cp 也是可以,这样至少出现问题时,数据源还是完好的。
    9hills
        24
    9hills  
       2015-07-22 12:31:12 +08:00 via iPhone
    不是mv的锅
    aivier
        25
    aivier  
       2015-07-22 13:06:18 +08:00
    以前用优盘复制文件有过类似的事,剪切途中断开了,源文件没了,优盘里的也不完整
    msg7086
        26
    msg7086  
       2015-07-22 13:15:17 +08:00
    mv的时候一定一定要确保自己打了目标。否则通配符的最后一个对象就成目标了。

    比如你两个文件,doc1 doc2,然后打个mv doc*,就是doc1覆盖doc2了。
    dbfox
        27
    dbfox  
       2015-07-22 13:42:54 +08:00
    不得不来说下,头像上那女生好漂亮,是个温柔善良的女孩。
    lonelinsky
        28
    lonelinsky  
       2015-07-22 14:00:00 +08:00
    @Draplater see,thx
    dalaomj
        29
    dalaomj  
       2015-07-22 14:02:08 +08:00
    @dbfox 就是她。V2有人挖出过更多照片。
    timothyye
        30
    timothyye  
       2015-07-22 14:46:35 +08:00
    看来凡事还是cp靠谱,留条后路总没错……
    loveminds
        31
    loveminds  
    OP
       2015-07-22 14:51:37 +08:00
    @dbfox 那是我
    loveminds
        32
    loveminds  
    OP
       2015-07-22 14:57:41 +08:00
    @xiaobu
    @ekeyme
    @timothyye
    这提供商只划了10G的sda而且还把其中4G用作swap
    导致的后果就是根文件系统长期满掉,以至于最后连tmp和pid的空间都没有了
    这是重新处理后的结果,swap放在home了
    df -lhT
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/sda1 ext4 5.8G 2.9G 2.7G 53% /
    tmpfs tmpfs 946M 0 946M 0% /dev/shm
    /dev/sdb1 ext4 49G 7.1G 38G 15% /home
    /dev/sda2 ext4 3.9G 1.2G 2.5G 32% /usr/local
    snnn
        33
    snnn  
       2015-07-22 14:58:49 +08:00
    妹子好评

    动手能力真强!
    dbfox
        34
    dbfox  
       2015-07-22 14:59:34 +08:00
    @loveminds 然并卵,不过你可以给个微信微博或者可以公开的项目,来没事用来养眼
    dbfox
        35
    dbfox  
       2015-07-22 15:01:37 +08:00
    @loveminds 也可以聊聊天
    kobe1941
        36
    kobe1941  
       2015-07-22 15:06:08 +08:00
    @dalaomj 所以更多的照片在哪里?
    foxni
        37
    foxni  
       2015-07-22 16:40:15 +08:00
    妹纸好评,顺便吐槽下,很多时候明知道mv的不老实,但是还是深深的依恋着它~
    ljcarsenal
        38
    ljcarsenal  
       2015-07-22 17:10:12 +08:00
    LunaDream Technology 是个啥东西
    zent00
        39
    zent00  
       2015-07-22 17:23:00 +08:00 via iPhone
    看楼主的附言,感觉楼主还是没有完全了解问题的原因。问题的症结在于你输入的那个 * ,而不是 mv 命令,因为 Shell 把 * 拆开来解释了。举个例子:当前目录下有个 test 目录,而 test 下有三个子目录,分别为 a,b,c ,你试着执行 cp -R test/* ,然后去 test/c 下看看是不是多了些什么。

    这个例子里你输入的 cp -R test/* 实际上等同于 cp -R test/a test/b test/c ,你没有指定目标目录,于是通配符 * 被拆开之后的 test/c 成了目标目录。为什么不是 test/a 也不是 test/b ,而是 test/c 成为目标目录?相信你肯定也知道,因为拆开之后的内容按字母顺序来排列了。你可以看看你操作的那台服务器上 /usr 目录下 uwsgi_temp 目录按字母排序是不是最后一个目录。
    Lilacs
        40
    Lilacs  
       2015-07-22 17:23:53 +08:00
    冲妹子头像回一个
    sunever
        41
    sunever  
       2015-07-22 17:57:14 +08:00
    怎么一半都是看妹子的……
    xseven007
        42
    xseven007  
       2015-07-22 18:15:25 +08:00
    mv之前我都谨慎的先快照一下,,,
    wingyiu
        43
    wingyiu  
       2015-07-22 18:28:35 +08:00
    @Draplater 涨见识了
    jdlau
        44
    jdlau  
       2015-07-22 19:30:47 +08:00
    妹子,以后有问题可以直接来问我。
    arslion
        45
    arslion  
       2015-07-22 19:42:37 +08:00
    好久没有离会技术的妹子这么近了,才不到50楼_
    ldb1992
        46
    ldb1992  
       2015-07-22 22:57:01 +08:00
    看见头像就进来了额
    nino789pzw
        47
    nino789pzw  
       2015-07-22 23:40:50 +08:00
    曾经cd错路径 然后手抖rm 了所有文件。。
    ehs2013
        48
    ehs2013  
       2015-07-22 23:43:46 +08:00
    一般带 * 的命令我都会手动展开一下(Tab)
    Yiph
        49
    Yiph  
       2015-07-23 09:08:02 +08:00
    @Draplater @zent00 好评。
    Navee
        50
    Navee  
       2015-07-23 10:22:54 +08:00
    围观妹子 , 学习技术!
    codeyung
        51
    codeyung  
       2015-07-23 10:43:08 +08:00
    up 1
    aprikyblue
        52
    aprikyblue  
       2015-07-23 12:50:37 +08:00
    学到了
    jack139
        53
    jack139  
       2015-07-23 13:45:45 +08:00
    看头像进来的
    deathscythe
        54
    deathscythe  
       2015-07-23 15:22:57 +08:00
    看看妹子进来了~
    fxxkgw
        55
    fxxkgw  
       2015-07-23 18:27:35 +08:00
    进来看妹子。。
    loveminds
        56
    loveminds  
    OP
       2015-07-23 20:24:17 +08:00
    @xseven007 磁盘已经爆了哪有空间给你快照,如果要整个备份到sdb,要多少时间
    xseven007
        57
    xseven007  
       2015-07-24 21:09:18 +08:00 via Android
    @loveminds ssd做磁盘阵列,应该会很快
    dalaomj
        58
    dalaomj  
       2015-08-03 19:14:19 +08:00
    @kobe1941 @dbfox
    member/gccvb
    这里能看到。居然和丹麦首相并列。。 -_-!
    dbfox
        59
    dbfox  
       2015-08-04 09:26:24 +08:00
    @dalaomj
    不明觉厉,怎么和丹麦扯上了,这么漂亮的妹子,赶快建个网站,发些日常,吸引些丝赚点广告费
    newborn
        60
    newborn  
       2015-09-08 17:13:32 +08:00
    建议 rsync 命令移动整个目录树并保留权限、文件链接等。
    bandianxing
        61
    bandianxing  
       2015-09-28 15:34:51 +08:00
    事情应该是这样的:
    mv /usr/* ,这条命令,把 usr 下面的其他目录 都弄到 /usr/uwsgi_temp 去了
    后面的 mv -f /usr/* /fakeusr/ ,只不过是移动了 /usr/uwsgi_temp 。
    所以,问题是出在第一步。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     934 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 22:40 PVG 06:40 LAX 14:40 JFK 17:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86