V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
loveminds
V2EX  ›  Linux

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

  •  1
     
  •   loveminds ·
    minmemory · Jul 22, 2015 · 8015 views
    This topic created in 3945 days ago, the information mentioned may be changed or developed.

    我是先建了一个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等一堆东西被移到异次元去了???
    现在是否还有办法恢复!!!

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

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

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

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

    底下是广告

    欢迎大家使用 TextArea.com 来记录自己学到的新东西〜
    lonelinsky
        21
    lonelinsky  
       Jul 22, 2015
    没看明白:

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

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

    @loveminds
    Draplater
        22
    Draplater  
       Jul 22, 2015   ❤️ 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  
       Jul 22, 2015
    @xiaobu mv因为出现意外的时候,数据没移动完,数据损坏只有傻眼了。
    @ekeyme cp 也是可以,这样至少出现问题时,数据源还是完好的。
    9hills
        24
    9hills  
       Jul 22, 2015 via iPhone
    不是mv的锅
    aivier
        25
    aivier  
       Jul 22, 2015
    以前用优盘复制文件有过类似的事,剪切途中断开了,源文件没了,优盘里的也不完整
    msg7086
        26
    msg7086  
       Jul 22, 2015
    mv的时候一定一定要确保自己打了目标。否则通配符的最后一个对象就成目标了。

    比如你两个文件,doc1 doc2,然后打个mv doc*,就是doc1覆盖doc2了。
    aidevs
        27
    aidevs  
       Jul 22, 2015
    不得不来说下,头像上那女生好漂亮,是个温柔善良的女孩。
    lonelinsky
        28
    lonelinsky  
       Jul 22, 2015
    @Draplater see,thx
    dalaomj
        29
    dalaomj  
       Jul 22, 2015
    @dbfox 就是她。V2有人挖出过更多照片。
    timothyye
        30
    timothyye  
       Jul 22, 2015
    看来凡事还是cp靠谱,留条后路总没错……
    loveminds
        31
    loveminds  
    OP
       Jul 22, 2015
    @dbfox 那是我
    loveminds
        32
    loveminds  
    OP
       Jul 22, 2015
    @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  
       Jul 22, 2015
    妹子好评

    动手能力真强!
    aidevs
        34
    aidevs  
       Jul 22, 2015
    @loveminds 然并卵,不过你可以给个微信微博或者可以公开的项目,来没事用来养眼
    aidevs
        35
    aidevs  
       Jul 22, 2015
    @loveminds 也可以聊聊天
    kobe1941
        36
    kobe1941  
       Jul 22, 2015
    @dalaomj 所以更多的照片在哪里?
    foxni
        37
    foxni  
       Jul 22, 2015
    妹纸好评,顺便吐槽下,很多时候明知道mv的不老实,但是还是深深的依恋着它~
    ljcarsenal
        38
    ljcarsenal  
       Jul 22, 2015
    LunaDream Technology 是个啥东西
    zent00
        39
    zent00  
       Jul 22, 2015 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  
       Jul 22, 2015
    冲妹子头像回一个
    sunever
        41
    sunever  
       Jul 22, 2015
    怎么一半都是看妹子的……
    xseven007
        42
    xseven007  
       Jul 22, 2015
    mv之前我都谨慎的先快照一下,,,
    wingyiu
        43
    wingyiu  
       Jul 22, 2015
    @Draplater 涨见识了
    jdlau
        44
    jdlau  
       Jul 22, 2015
    妹子,以后有问题可以直接来问我。
    arslion
        45
    arslion  
       Jul 22, 2015
    好久没有离会技术的妹子这么近了,才不到50楼ಥ_ಥ
    ldb1992
        46
    ldb1992  
       Jul 22, 2015
    看见头像就进来了额
    nino789pzw
        47
    nino789pzw  
       Jul 22, 2015
    曾经cd错路径 然后手抖rm 了所有文件。。
    ehs2013
        48
    ehs2013  
       Jul 22, 2015
    一般带 * 的命令我都会手动展开一下(Tab)
    Yiph
        49
    Yiph  
       Jul 23, 2015
    @Draplater @zent00 好评。
    Navee
        50
    Navee  
       Jul 23, 2015
    围观妹子 , 学习技术!
    codeyung
        51
    codeyung  
       Jul 23, 2015
    up 1
    aprikyblue
        52
    aprikyblue  
       Jul 23, 2015
    学到了
    jack139
        53
    jack139  
       Jul 23, 2015
    看头像进来的
    deathscythe
        54
    deathscythe  
       Jul 23, 2015
    看看妹子进来了~
    fxxkgw
        55
    fxxkgw  
       Jul 23, 2015
    进来看妹子。。
    loveminds
        56
    loveminds  
    OP
       Jul 23, 2015
    @xseven007 磁盘已经爆了哪有空间给你快照,如果要整个备份到sdb,要多少时间
    xseven007
        57
    xseven007  
       Jul 24, 2015 via Android
    @loveminds ssd做磁盘阵列,应该会很快
    dalaomj
        58
    dalaomj  
       Aug 3, 2015
    @kobe1941 @dbfox
    https://www.v2ex.com/member/gccvb
    这里能看到。居然和丹麦首相并列。。 -_-!
    aidevs
        59
    aidevs  
       Aug 4, 2015
    @dalaomj
    不明觉厉,怎么和丹麦扯上了,这么漂亮的妹子,赶快建个网站,发些日常,吸引些屌丝赚点广告费
    newborn
        60
    newborn  
       Sep 8, 2015
    建议 rsync 命令移动整个目录树并保留权限、文件链接等。
    bandianxing
        61
    bandianxing  
       Sep 28, 2015
    事情应该是这样的:
    mv /usr/* ,这条命令,把 usr 下面的其他目录 都弄到 /usr/uwsgi_temp 去了
    后面的 mv -f /usr/* /fakeusr/ ,只不过是移动了 /usr/uwsgi_temp 。
    所以,问题是出在第一步。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2862 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 137ms · UTC 10:52 · PVG 18:52 · LAX 03:52 · JFK 06:52
    ♥ Do have faith in what you're doing.