中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下誤刪除/home目錄怎么辦

發布時間:2021-08-19 23:19:44 來源:億速云 閱讀:190 作者:chen 欄目:建站服務器

這篇文章主要講解了“Linux下誤刪除/home目錄怎么辦”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux下誤刪除/home目錄怎么辦”吧!

     
     一般情況下,我們在安裝Oracle數據庫的時候,都會創建一個Oracle用戶,用該用戶來安裝和管理Oracle。Oracle用戶的根目錄就是/home/oracle。

通常安裝Oracle數據庫是按照官方文檔的建議來創建和管理的數據庫,這樣也便于進行進行數據庫的管理。

今天早上,一朋友就出現這個問題,在客戶那里,使用rm –rf ./home命令誤刪除了整個/home目錄,當時他整個人都快要崩了,不知道該如何去恢復,沒有任何思路。居然犯這么低級的錯誤:rm -rf 這樣的命令也敢用;哎,都是苦逼的DBA,這樣的錯誤誰會沒有犯過呢?所以,作為一名DBA,在執行任何的命令都要想清楚,尤其是在生產環境中,在使用rm命令的時候,最好不要使用-f參數,哎,還是慢慢的歷練吧,遇到的坑越多,也許成長的越快吧!!!

  該文主要是針對誤刪除/home/oracle 目錄的解決方法。這里不涉及Oracle的數據文件的恢復。

1、在安裝oracle 數據庫的時候,我們都會創建相關的用戶和組。 

[root@seiang11g ~]# groupadd oinstall

[root@seiang11g ~]# groupadd dba

[root@seiang11g ~]# groupadd oper

[root@seiang11g ~]# useradd -g oinstall -G dba oracle

這里是用Linux的命令來創建的。 和數據庫創建一樣,我們一般都是通過OUI來創建實例。所以我們在講這個故障的處理之前,需要了解Linux手工創建用戶和組的方法。

每個用戶的創建,都會涉及到如下幾個文件:

/etc/passwd (用戶)

/etc/group (用戶組)

/etc/shadow (密鑰文件)

/home/username (家目錄)

/etc/skel/.* (骨架文件)

/etc/skel 目錄/etc/skel目錄一般是存放用戶啟動文件的目錄,這個目錄是由root權限控制,當添加用戶時,這個目錄下的文件自動復制到新添加的用戶的家目錄下;/etc/skel 目錄下的文件都是隱藏文件,也就是類似.file格式的;我們可通過修改、添加、刪除/etc/skel目錄下的文件,來為用戶提供一個統一、標準的、默認的用戶環境。
/etc/skel 目錄下的文件,一般是用useradd命令添加用戶(user)時,系統自動復制到新添加用戶(user)的家目錄下;如果我們通過修改 /etc/passwd 來添加用戶時,我們可以自己創建用戶的家目錄,然后把/etc/skel 下的文件復制到用戶的家目錄下,然后要用chown 來改變新用戶家目錄的屬主。

/etc/default/useradd 文件
通過useradd 添加用戶時的規則文件,內容如下:

# useradd defaults file
GROUP=100
HOME=/home                 --把用戶的家目錄建在/home中;
INACTIVE=-1                 --是否啟用帳號過期停權,-1表示不啟用;
EXPIRE=                        --帳號終止日期,不設置表示不啟用;
SHELL=/bin/bash            --所用SHELL的類型;
SKEL=/etc/skel                --默認添加用戶的目錄默認文件存放位置;也就是說,當我們用useradd添加用戶時,用戶家目錄下的文件,都是從這個目錄中復制過去的;

在創建用戶的時候,會在/etc/passwd,/etc/group,/etc/shadow三個文件中添加用戶的信息,創建一個/home 下的用戶根目錄,然后把所有的骨架文件復制到用戶的根目錄下。

[root@seiang11g ~]# cat /etc/passwd | grep oracle

oracle:x:1001:1001::/home/oracle:/bin/bash

[root@seiang11g ~]# tail -3 /etc/group

oinstall:x:1001:

dba:x:1002:oracle

oper:x:1003:oracle

[root@seiang11g ~]# cat /etc/shadow | grep oracle

oracle:$6$GjeAhxPv$XLNcGZyLVTsm/GTzQPCL57A1/uKIlGgcfFunveGhAe56qTiYW1RwWims77GpHvp3l2GysGqt63vJHBmlFkxRv/:17357:0:99999:7:::

當我們刪除/home/oracle這個用戶的根目錄之后,用戶的配置信息還存在系統的配置文件中,所以只需要還原骨架文件,在修改一下環境變量的信息,就可以了。

誤刪除/home/oracle目錄的案例分析:

查看數據庫的運行狀態:正常運行

[oracle@seiang11g ~]$ ps -ef | grep ora | grep -v grep

root      1681  1552  0 16:08 pts/0    00:00:00 su - oracle

oracle    1682  1681  0 16:08 pts/0    00:00:00 -bash

oracle    1722  1682  0 16:08 pts/0    00:00:00 rlwrap sqlplus / as sysdba

oracle    1723  1722  0 16:08 pts/3    00:00:00 sqlplus   as sysdba

root      1725  1604  0 16:08 pts/1    00:00:00 su - oracle

oracle    1726  1725  0 16:08 pts/1    00:00:00 -bash

oracle    1768     1  0 16:08 ?        00:00:00 /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit

oracle    1774     1  0 16:08 ?        00:00:00 ora_pmon_seiang11g

oracle    1776     1  0 16:08 ?        00:00:00 ora_psp0_seiang11g

oracle    1778     1  1 16:08 ?        00:00:05 ora_vktm_seiang11g

oracle    1782     1  0 16:08 ?        00:00:00 ora_gen0_seiang11g

oracle    1784     1  0 16:08 ?        00:00:00 ora_diag_seiang11g

oracle    1786     1  0 16:08 ?        00:00:00 ora_dbrm_seiang11g

oracle    1788     1  0 16:08 ?        00:00:00 ora_dia0_seiang11g

oracle    1790     1  0 16:08 ?        00:00:00 ora_mman_seiang11g

oracle    1792     1  0 16:08 ?        00:00:00 ora_dbw0_seiang11g

oracle    1794     1  0 16:08 ?        00:00:00 ora_lgwr_seiang11g

oracle    1796     1  0 16:08 ?        00:00:00 ora_ckpt_seiang11g

oracle    1798     1  0 16:08 ?        00:00:00 ora_smon_seiang11g

oracle    1800     1  0 16:08 ?        00:00:00 ora_reco_seiang11g

oracle    1802     1  0 16:08 ?        00:00:00 ora_mmon_seiang11g

oracle    1804     1  0 16:08 ?        00:00:00 ora_mmnl_seiang11g

oracle    1806     1  0 16:08 ?        00:00:00 ora_d000_seiang11g

oracle    1808     1  0 16:08 ?        00:00:00 ora_s000_seiang11g

oracle    1814  1723  0 16:08 ?        00:00:00 oracleseiang11g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

oracle    1816     1  0 16:08 ?        00:00:00 ora_arc0_seiang11g

oracle    1818     1  0 16:08 ?        00:00:00 ora_arc1_seiang11g

oracle    1820     1  0 16:08 ?        00:00:00 ora_arc2_seiang11g

oracle    1822     1  0 16:08 ?        00:00:00 ora_arc3_seiang11g

oracle    1824     1  0 16:08 ?        00:00:00 ora_qmnc_seiang11g

oracle    1838     1  0 16:08 ?        00:00:00 ora_cjq0_seiang11g

oracle    1850     1  0 16:08 ?        00:00:00 ora_q000_seiang11g

oracle    1852     1  0 16:08 ?        00:00:00 ora_q001_seiang11g

oracle    1945  1726  0 16:13 pts/1    00:00:00 ps -ef 

直接把/home/oracle 目錄刪掉,我這里直接mv模擬rm。

[root@seiang11g ~]# cd /home

[root@seiang11g home]# ll

total 4

drwx------  15 oracle oinstall 4096 Aug  9 15:08 oracle

drwx------.  3 seiang seiang     78 Jul 10 09:46 seiang

[root@seiang11g home]# mv oracle/ oracle.bak

[root@seiang11g home]#

[root@seiang11g home]# ll

total 4

drwx------  15 oracle oinstall 4096 Aug  9 15:08 oracle.bak

drwx------.  3 seiang seiang     78 Jul 10 09:46 seiang

[root@seiang11g home]#

[root@seiang11g home]# su - oracle

Last login: Wed Aug  9 16:08:15 CST 2017 on pts/1

su: warning: cannot change directory to /home/oracle: No such file or directory

-bash-4.2$

-bash-4.2$ sqlplus / as sysdba

bash: sqlplus: command not found...

-bash-4.2$

-bash-4.2$ pwd

/home

-bash-4.2$

-bash-4.2$ whoami

oracle 

開始恢復:

創建目錄:

[root@seiang11g home]# pwd

/home

[root@seiang11g home]# mkdir oracle

[root@seiang11g home]# chown oracle:oinstall oracle

[root@seiang11g home]# ll

total 16

drwxr-xr-x   5 oracle oinstall 8192 Aug  9 16:33 oracle

drwx------  15 oracle oinstall 4096 Aug  9 15:08 oracle.bak

drwx------.  3 seiang seiang     78 Jul 10 09:46 seiang

復制骨架文件:

[root@seiang11g oracle]# cp -R /etc/skel/.* /home/oracle/

[root@seiang11g oracle]# chown -R oracle:oinstall/home/oracle

[root@seiang11g oracle]# ls -al

total 28

drwxr-xr-x  3 oracle oinstall 8192 Aug  9 16:30 .

drwxr-xr-x. 5 root   root       52 Aug  9 16:22 ..

-rw-r--r--  1 oracle oinstall   18 Aug  9 16:29 .bash_logout

-rw-r--r--  1 oracle oinstall  193 Aug  9 16:29 .bash_profile

-rw-r--r--  1 oracle oinstall  231 Aug  9 16:29 .bashrc

drwxr-xr-x  4 oracle oinstall   39 Aug  9 16:29 .mozilla

-rw-------  1 oracle oinstall    0 Aug  9 16:29 .pwd.lock

-rw-r--r--  1 oracle oinstall  163 Aug  9 16:29 .updated

修改oracle用戶的環境變量:

[root@seiang11g oracle]# vim .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

unset TNS_ADMIN

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=seiang11g

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export PATH=$ORACLE_HOME/bin:$PATH

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

[root@seiang11g ~]# su - oracle

Last login: Wed Aug  9 16:16:48 CST 2017 on pts/2

[oracle@seiang11g ~]$

[oracle@seiang11g ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 9 16:32:54 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@seiang11g> 

恢復正常。但如果在/home/oracle目錄下存在Oracle的數據文件,那么恢復就比這里要復雜多。

感謝各位的閱讀,以上就是“Linux下誤刪除/home目錄怎么辦”的內容了,經過本文的學習后,相信大家對Linux下誤刪除/home目錄怎么辦這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗洪县| 维西| 鄂伦春自治旗| 龙海市| 德江县| 康马县| 武定县| 长岛县| 郴州市| 宿松县| 甘洛县| 义乌市| 贞丰县| 阳城县| 岢岚县| 周口市| 壤塘县| 惠水县| 旅游| 岫岩| 新乐市| 鹤岗市| 汝南县| 焦作市| 长垣县| 龙陵县| 长岛县| 图木舒克市| 临泉县| 托克托县| 庄河市| 务川| 湘阴县| 兴义市| 新宁县| 昭苏县| 应城市| 射洪县| 青州市| 盐源县| 武乡县|