Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
loveminds
V2EX  ›  Linux

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

  •  1
     
  •   loveminds ·
    minmemory · Jul 22, 2015 · 8519 views
    This topic created in 4126 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
    loveminds
    OP
    Jul 22, 2015
    1
    另外查了下还有一条在家目录不小心手滑敲上的mv /usr/*
    不知道有没影响,分区表还有备份(我备份的是整个sda的mbr)
    ming2050
    ming2050
    Jul 22, 2015 via Android
    2
    为妹子顶一个
    loveminds
    loveminds
    OP
    Jul 22, 2015
    3
    终于找到了,全跑/usr/uwsgi_temp里去了
    ming2050
    ming2050
    Jul 22, 2015 via Android
    4
    话说你起的挺早
    canky
    canky
    Jul 22, 2015 via iPhone
    5
    妹子好评啊
    DearTanker
    DearTanker
    Jul 22, 2015❤️1
    6
    曾经我给楼主的免费煮机捐赠过,那时穷,才捐了¥50好像,掩面~~~
    YORYOR
    YORYOR
    Jul 22, 2015
    7
    妹子好评!
    mcfog
    mcfog
    Jul 22, 2015
    8
    这个故事告诉我们,跨分区的mv和rm是一路货色,嗯嗯
    frozenshadow
    frozenshadow
    Jul 22, 2015
    9
    PL妹子好评~
    inmyfree
    inmyfree
    Jul 22, 2015
    10
    妹子女神起的好早啊....
    loveminds
    loveminds
    OP
    Jul 22, 2015
    11
    @mcfog 其实也不是,只是如果mv没有目标,它就会耍流氓
    mN71eOOprFyMsnPx
    mN71eOOprFyMsnPx
    Jul 22, 2015
    12
    多年的经验告诉我,不要用mv,不要用mv。

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

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

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

    底下是广告

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

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

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

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

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

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