Alpha Technology Group Limited, ATGL, $26.07, Change % -0.69

博客

  • 干货,不小心执行了rm -f,除了跑路,如何恢复?

    n

    前言

    nnnn

    每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵。

    nnnn

    那么如果真的删除了不该删除的文件,比如数据库、日志或执行文件,咋办呢?欲知后事如何,请仔细看完本篇博客。

    nnnn

    模拟场景

    nnnn

    1.删除

    nnnn

    误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件:

    nnnn
    n

    rm -f /root/selenium/Spider/MySql.Data.dll> ll /root/selenium/Spider/MySql.Data.dllls: cannot access /root/selenium/Spider/MySql.Data.dll: No such file or directory

    n
    nnnn

    2.恢复
    使用lsof命令查看当前是否有进程打开/root/selenium/Spider/MySql.Data.dll文件:

    nnnn
    n

    lsof | grep /root/selenium/Spider/MySql.Data.dll

    n
    nnnn

    从上面可以看出,当前文件状态为已删除(deleted)。

    nnnn

    查看是否存在恢复数据:

    nnnn

    /proc/13067/fd:进程操作的文件描述符目录。

    nnnn

    86:文件描述符。

    nnnn
    n

    cat /proc/13067/fd/86

    n
    nnnn

    使用I/O重定向恢复文件:

    nnnn
    n

    cat /proc/23778/fd/86 > /root/selenium/Spider/MySql.Data.dll> ls -l /root/selenium/Spider/MySql.Data.dll-rw-r–r– 1 root root 702464 Feb 10 12:03 /root/selenium/Spider/MySql.Data.dll
    重新运行程序:

    n
    nnnn

    说明恢复的文件没有问题。

    nnnn

    刨根问底

    nnnn

    通过前面的模拟场景演示了恢复文件的整个过程,那么原理是什么,在什么情况下,文件才是可恢复的。

    nnnn

    在Linux系统中,每个运行中的程序都有一个宿主进程彼此隔离,以/proc/进程号来体现(Linux本质上就是一个文件系统),比如:ls -l /proc/13067 查看进程PID为13067的进程信息;当程序运行时,操作系统会专门开辟一块内存区域,提供给当前进程使用,对于依赖的文件,操作系统会发放一个文件描述符,以便读写文件,当我们执行 rm -f 删除文件时,其实只是删除了文件的目录索引节点,对于文件系统不可见,但是对于打开它的进程依然可见,即仍然可以使用先前发放的文件描述符读写文件,正是利用这样的原理,所以我们可以使用I/O重定向的方式来恢复文件。

    nnnn

    总结

    nnnn

    如果不小心误删了文件,不要着急,首先使用 lsof 查看打开该文件的进程,然后再使用 cat /proc/进程号/fd/文件描述符 查看恢复数据,最后使用I/O重定向的方式来恢复文件。

    nnnn

    https://www.cnblogs.com/justmine/p/10359186.html

    n
  • 简易的命令行入门教程

    n
    n

    强烈建议所有的git仓库都有一个README, LICENSE, .gitignore文件

    n
    nnnn

    简易的命令行入门教程

    nnnn

    Git 全局设置

    nnnn
    git config --global user.name "***"ngit config --global user.email "***@***.com"n
    nnnn

    创建 git 仓库:

    nnnn
    mkdir testbbncd testbbngit initntouch README.mdngit add README.mdngit commit -m "first commit"ngit remote add origin https://github.com/someone/***.gitngit push -u origin mastern
    nnnn

    已有仓库

    nnnn
    cd existing_git_repongit remote add origin https://github.com/someone/***.gitngit push -u origin master
    n
  • 英语常用万能句型整理

    n
      n
    • There+be +主语+地点状语/ 时间状语
    • nnnn
    • What’s wrong with+sb. / sth. ?
    • nnnn
    • How do you like…?  
    • nnnn
    • What do you like about…?  
    • nnnn
    • had better(not)+动词原形  
    • nnnn
    • How+adj. / adv. +主语+谓语!  
    • nnnn
    • What a/ an+adj. +n. +主语+谓语!  
    • nnnn
    • Thank+sb. +for(doing)sth.  
    • nnnn
    • So+be/ 情态动词/ 助动词+主语  
    • nnnn
    • … not … until …  
    • nnnn
    • 比较级+and+比较级  
    • nnnn
    • the +比较级,the +比较级  
    • nnnn
    • … as +adj./ adv.+as …  …not as(so) +adj. / adv. +as …  
    • nnnn
    • more/ less +adj.+than…  
    • nnnn
    • stop…from doing sth.  
    • nnnn
    • both … and …  
    • nnnn
    • either … or…  
    • nnnn
    • neither … nor …  
    • nnnn
    • … as soon as …  
    • nnnn
    • … so+adj. / adv.+that …  
    • nnnn
    • Though…+主句  
    • nnnn
    • be going to  
    • nnnn
    • be different from  
    • nnnn
    • Welcome(back)to…  
    • nnnn
    • have fun doing  
    • nnnn
    • … because … / …,so …  
    • nnnn
    • Why don’t you … / Why not …  
    • nnnn
    • make it  
    • nnnn
    • have nothing to do  
    • nnnn
    • be sure/ be sure of/ about sth. / be sure to do sb.  
    • nnnn
    • between … and …  
    • nnnn
    • keep sb. / sth. +adj./ V-ing/ 介词补语/ adv. 
    • nnnn
    • find +宾语+宾补  
    • nnnn
    • … not … anymore/ longer  
    • nnnn
    • What’s the weather like…?  
    • nnnn
    • There is no time to do/ have no time to do  
    • nnnn
    • Help oneself to…  
    • nnnn
    • used to do  
    • nnnn
    • borrow … from  
    • nnnn
    • lend sb. sth. / lend sth. to sb.  
    • nnnn
    • have been to  
    • nnnn
    • have gone to  
    • nnnn
    • be famous for  
    • nnnn
    • No matter +疑问句+主句  
    • nnnn
    • be afraid(of / todo / that…)  
    • nnnn
    • … as … as possible / … as … as sb can  
    • nnnn
    • practise / enjoy / finish doing  
    • nnnn
    • It’s said that …  
    • nnnn
    • Not all / everyone …  
    • nnnn
    • be based on  
    • nnnn
    • … so that …  
    • nnnn
    • be+num. +metres / kilometres / years…+long / wide / deep / high / old…  
    • nnnn
    • keep … from doing  
    • nnnn
    • with one’s help…  
    • nnnn
    • I don’t think …  
    • nnnn
    • What’s the population of …?  
    • nnnn
    • prefer to do … rather than do  
    • nnnn
    • be worth (doing) …  
    • nnnn
    • regard … as  
    • nnnn
    • be confident of  
    • nnnn
    • seem to do / seem +adj. / (介词短语)  
    • nnnn
    • be angry with / about / at(doing)  
    • nnnn
    • pay for / pay … for  
    • n
    n
  • github 图片无法显示?

    n

    不怕,在hosts上加上以下地址就好了

    nnnn

    192.30.253.112 github.com

    nnnn

    192.30.253.119 gist.github.com

    nnnn

    151.101.184.133 assets-cdn.github.com

    nnnn

    151.101.184.133 raw.githubusercontent.com

    nnnn

    151.101.184.133 gist.githubusercontent.com

    nnnn

    151.101.184.133 cloud.githubusercontent.com

    nnnn

    151.101.184.133 camo.githubusercontent.com

    nnnn

    151.101.184.133 avatars0.githubusercontent.com

    nnnn

    151.101.184.133 avatars1.githubusercontent.com

    nnnn

    151.101.184.133 avatars2.githubusercontent.com

    nnnn

    151.101.184.133 avatars3.githubusercontent.com

    nnnn

    151.101.184.133 avatars4.githubusercontent.com

    nnnn

    151.101.184.133 avatars5.githubusercontent.com

    nnnn

    151.101.184.133 avatars6.githubusercontent.com

    nnnn

    151.101.184.133 avatars7.githubusercontent.com

    nnnn

    151.101.184.133 avatars8.githubusercontent.com

    n
  • thinkphp6 json字段中的某项目(数据库操作)

    n

    单独修改

    nnnn
    $data['list->name'] = '张三';nDb::name('student')->json(['list])->where('id',2)->update($data);n
    nnnn

    单独查询

    nnnn
    $student = Db::name('student')->json(['list'])->where('list->name','张三')->find();
    n
  • Hackintosh黑苹果长期维护机型EFI及安装教程整理

    n

    整理这份清单的目的:在于给想体验黑苹果的人一个方向,也想减少大家重复造轮子,节约大家的时间。

    nnnn

    项目地址: https://github.com/daliansky/Hackintosh

    n
  • 网页页面密码

    n
    javascript:(function()%7Bvar%20IN,F;IN=document.getElementsByTagName('input');for(var%20i=0;i<IN.length;i++)%7BF=IN%5Bi%5D;if(F.type.toLowerCase()=='password')%7Btry%7BF.type='text'%7Dcatch(r)%7Bvar%20n,Fa;n=document.createElement('input');Fa=F.attributes;for(var%20ii=0;ii<Fa.length;ii++)%7Bvar%20k,knn,knv;k=Fa%5Bii%5D;knn=k.nodeName;knv=k.nodeValue;if(knn.toLowerCase()!='type')%7Bif(knn!='height'&&knn!='width'&!!knv)n%5Bknn%5D=knv%7D%7D;F.parentNode.replaceChild(n,F)%7D%7D%7D%7D)()
    n
  • apache sites-enable 和 sites-available的区别

    n

    Linux的Apache配置文件是 /etc/apache2/apache2.conf,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如 httpd.conf等,则是通过include指令包含进来。

    nnnn

    在apache2.conf里有sites-enabled目录,而在 /etc/apache2下还有一个sites-available目录。其实,这里面才是真正的配置文件,而sites-enabled目录存放的只是一些指向这里的文件链接,可以通过ls -al /etc/apache2/sites-enabled/来查看来源。

    nnnn

    因此,如果apache上配置了多个虚拟主机,只需要将虚拟主机的配置文件都放在sites-available下,当在sites-enabled下建立一个指向某个虚拟主机配置文件的链接时,就启用了它;如果要关闭某个虚拟主机的话,只需删除相应的链接即可,无需去改配置文件。

    n
  • ubuntu/linux 换阿里云镜像

    n
      n
    1. vim /etc/apt/sources.list
    2. nnnn
    3. 粘贴######## Ubuntu18.04 阿里云镜像源 ###############deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse######## 阿里云镜像源 END ###############
    4. nnnn
    5. apt-get update
    6. n
    n