、配置文件介紹:
成都創新互聯是一家專注于網站建設、網站制作與策劃設計,承留網站建設哪家好?成都創新互聯做網站,專注于網站建設十余年,網設計領域的專業建站公司;建站業務涵蓋:承留等地區。承留做網站價格咨詢:13518219792
每個 Linux 程序都是一個可執行文件,它含有操作碼列表,CPU 將執行這些操作碼來完成特定的操作。
例如,ls 命令是由 /bin/ls 文件提供的,該文件含有機器指令的列表,在屏幕上顯示當前目錄中文件
的列表時需要使用這些機器指令。幾乎每個程序的行為都可以通過修改其配置文件來按照您的偏好或需
要去定制。
Linux 中有沒有一個標準的配置文件格式?
一句話,沒有。不熟悉 Linux 的用戶(一定)會感到沮喪,因為每個配置文件看起來都象是一個要迎
接的新挑戰。在 Linux 中,每個程序員都可以自由選擇他或她喜歡的配置文件格式。可以選擇的格式
很多,從 /etc/shells 文件(它包含被一個換行符分開的 shell 的列表),到 Apache 的復雜的
/etc/httpd.conf 文件。
什么是系統配置文件?
內核本身也可以看成是一個“程序”。為什么內核需要配置文件?內核需要了解系統中用戶和組的列表,
進而管理文件權限(即根據權限判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文
件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,并被內核使用。例如,程序需要某
個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的 getpw() 函
數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之后查找那個被請求的用戶的密碼都是由
內核(通過系統庫)決定的。
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面
幾類:
2、配置文件分類:
訪問文件
/etc/host.conf
告訴網絡域名服務器如何查找主機名。(通常是 /etc/hosts,
然后就是名稱服務器;可通過 netconf 對其進行更改)
/etc/hosts
包含(本地網絡中)已知主機的一個列表。如果系統的 IP 不
是動態生成,就可以使用它。對于簡單的主機名解析(點分表
示法),在請求 DNS 或 NIS 網絡名稱服務器之前,
/etc/hosts.conf 通常會告訴解析程序先查看這里。
/etc/hosts.allow
請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
/etc/hosts.deny
請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
引導和登錄/注銷
/etc/issue
/etc/issue點虐
時也是管理員,那么在 group 文件中他的條目看起來就會是這樣的:user: * :
group-id : project1
/etc/nologin
這是一個普通的文本文件.你可以在里面寫上你喜歡的任何東西./etc/nologin
的作用在于,如果它存在,那么系統將拒絕任何非 root 用戶的登錄請求,并對其
它登錄用戶顯示此文件的內容
此文件常由系統在停機前自動生成.有時系統管理員也會手工生成它,用以禁止
其它用戶登錄,方便進行一些管理工作.
etc/passwd
1.文件格式
/etc/passwd 存儲了系統中所有用戶的基本信息.可以說這是系統中最重要的一
個配置文件.對它作任何修改一定要小心謹慎.同時要經常檢察這個文件,包括
它的內容和權限設置.
使用 vi 編輯程序打開此文件,可以看到這個文件由許多行記錄組成.每一行記
錄對應著一個用戶.我們以第一行為例.第一行一般是 root 用戶的記錄,盡管這
不是必需的.實際上用戶記錄出現的順序并沒有任何的意義.
在我的系統中,/etc/passwd 的第一行看起來是這樣的:
root:x:0:0:root:/root:/bin/bash
每一條記錄都由 7 個字段組成,每個字段之間用冒號隔開.第一個字段是用戶
名,示例中是 root.第二個字段是用戶口令,示例中是一個字符 x,但這并不表示root 的口令是單個字符 x,而是說用戶口令被加密了,并且加密口令也沒有放在
本文件中,而是放到了/etc/shadow(參考 /etc/shadow).假如刪除這個 x,那么
root 的口令就清空了.第三個字段是用戶的用戶 ID,即 uid.第四個字段是用戶
的組 ID,即 gid. 這里要注意,系統分辨兩個用戶是看他們的 uid 是否相同而不
是看他們的用戶名是否相同.用戶名不同但 uid 相同的兩個用戶實際上是同一
個用戶.對組來說也有類似的規則.所以這兩個字段大家一定要注意.第五個字
段是用戶全稱,沒有什么實際用途,相當于注釋,這里是 root.第六個字段是用戶
的主目錄 (home),即登錄系統后默認所處目錄,這里是/root.最后一個字段是
用戶的登錄 shell,可以是系統擁有的任何一個 shell 的完整路徑,這里是
/bin/bash.注意,這個字段可以有一個特殊的值,即/sbin/nologin.如果把一個
用戶的登錄 shell 設置為 /sbin/nologin 的話,系統將禁止此用戶的本地登錄.
請參閱“man passwd”。它包含一些用戶帳號信息,包括密碼(如果未被 shadow
程序加密過)。
2.安全性
/etc/passwd 的默認權限為 644,所有者和所有組均為 root.切記,在任何情況下
都不要更改它.
3.相關命令
passwd
useradd
userdel
adduser
usermod
users
/etc/rpmrc
rpm 命令配置。所有的 rpm 命令行選項都可以在這個文件中一起設置,這樣,
當任何 rpm 命令在該系統中運行時,所有的選項都會全局適用。
/etc/securetty
包含設備名稱,由 tty 行組成(每行一個名稱,不包括前面的 /dev/),root
用戶在這里被允許登錄。
1.文件格式
這是一個設備文件的列表.文件名取相對于/dev 的相對路徑.如,/dev/tty1 記
為 tty1
root 只有從這個列表中列出的設備上才可以登錄系統.
例如:
代碼:
$cat /etc/securretty
tty1
tty2
tty3
這里 root 被限定只能從/dev/tty1, /dev/tty2, /dev/tty3 這三個設備上登錄
系統
如果/etc/securretty 不存在的話,那么 root 將可以從任何設備登錄系統.
2.安全性
/etc/securetty 的默認權限是 600,所有者和所有組都是 root
/etc/shadow
包含加密后的用戶帳號密碼信息,還可以包括密碼時效信息。包括的字段有:? 登錄名
? 加密后的密碼
? 從 1970 年 1 月 1 日到密碼最后一次被更改的天數
? 距密碼可以更改之前的天數
? 距密碼必須更改之前的天數
? 密碼到期前用戶被警告的天數
? 密碼到期后帳戶被禁用的天數
? 從 1970 年 1 月 1 日到帳號被禁用的天數
1.文件格式
/etc/shadow 文件保存的是用戶名,密碼,用戶賬號設置相關信息。
例:
root:$1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1:12264:3:4:5:6:12267:
第一段: root----- 用戶注冊名
第二段: $1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1 ----加密口令
第三段: 12264-----上次更動密碼的日期,以 1970 年 1 月 1 日為 1,1 天加 1
第四段: 3---------密碼將被允許修改之前的天數(0 表示“可在任何時間修
改”)
第五段: 4---------系統將強制用戶修改為新密碼之前的天數(1 表示“永遠
都不能修改”)
第六段: 5---------密碼過期之前,用戶將被警告過期的天數(-1 表示“沒有
警告”)
第七段: 6---------密碼過期之后,系統自動禁用帳戶的天數(-1 表示“永遠
不會禁用”)
第八段: 12267-----該帳戶被禁用的天數(-1 表示“該帳戶被啟用”).以 1970
年 1 月 1 日為 1,1 月 2 日為 2
第九段 ------ 保留供將來使用
注:第 2 段中為*表示帳號不可登錄,如密碼前為 !! 或只有 !! 表示帳號被鎖
2.安全性/etc/shadow 的默認所有者和所有組均為 root.
建議運行# chattr +i /etc/shadow 來保護文件使其不被意外地刪除或重寫
3.相關命令
passwd
useradd
userdel
usermod
/ect/gshadow
1.文件格式
/ect/gshadow 文件保存的是用戶和組群設置的信息
例:
root:!!::root,wa1
第一段:組名
第四段:該組包含用戶列表
2.安全性
/etc/gshadow 的默認所有者和所有組均為 root.
建議運行# chattr +i /etc/shadow 來保護文件使其不被意外地刪除或重寫
3.相關命令
groupadd
groupdel
groupmod
groups
/etc/sysctl.conf
1.文件格式
/etc/sysctl.conf 是 sysctl 程序的配置文件.sysctl 可以在系統運行時更改內
核參數./etc/sysctl.conf 中的配置將在系統起動時執行.
以 # 和 ; 開始的行是注釋,將和空白行一起被忽略.
配置項的格式為:
token = value
token 是一個鍵名,value 是對應的鍵值.token 和 value 前后的空格將被忽略
token 不能是隨意的字符串.他和/proc/sys 下的文件有一一對應的關系:
.h2 NEWS_PROXY
.h2 NNTP_PROXY
# Lynx version 2.2 and beyond supports the use of proxy servers that can act as
# firewall gateways and caching servers. They are preferable to the older
# gateway servers. Each protocol used by Lynx can be mapped separately using
# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have
# not set them externally, you can set them at run time via this configuration file.
# They will not override external settings. The no_proxy variable can be used
# to inhibit proxying to selected regions of the Web (see below). Note that on
# VMS these proxy variables are set as process logicals rather than symbols, to
# preserve lowercasing, and will outlive the Lynx image.
#
.ex 15
http_proxy:
ftp_proxy:
#http_proxy:
#ftp_proxy:
.h2 NO_PROXY
# The no_proxy variable can be a comma-separated list of strings defining
# no-proxy zones in the DNS domain name space. If a tail substring of the
# domain-path for a host matches one of these strings, transactions with that# node will not be proxied.
.ex
no_proxy:demiurge.in.ibm點抗 , demiurge
更改配置文件
在更改配置文件時,如果程序不是由系統管理員或內核控制的,就要確保重新啟動過使用該配置的程
序。普通用戶通常沒有啟動或停止系統程序和/或守護進程的權限。
內核
更改內核中的配置文件會立即影響到系統。例如,更改 passwd 文件以增加用戶將立即使該用戶變為
可用。而且任何 Linux 系統的 /proc/sys 目錄中都有一些內核可調參數。只有超級用戶可以得到對
所有這些文件的寫訪問權力;其它用戶只有只讀訪問權力。此目錄中文件的分類的方式和 Linux 內
核源代碼的分類方式一樣。此目錄中的每個文件都代表一個內核數據結構,這些數據結構可以被動態
地修改,從而改變系統性能。
注意:在更改其中任何文件的任何值之前,您應該確保自己全面了解該文件,以避免對系統造成不可
修復的損害。
/proc/sys/kernel/ 目錄中的文件
文件名
描述
threads-max
內核可運行的最大任務數。
ctrl-alt-del
如果值為 1,那么順序按下這幾個鍵將“徹底地”重新引
導系統。
sysrq
如果值為 1,Alt-SysRq 則為激活狀態。
osrelease
顯示操作系統的發行版版本號
ostype
顯示操作系統的類型。
hostname
系統的主機名。
domainname
網絡域,系統是該網絡域的一部分。
modprobe
指定 modprobe 是否應該在啟動時自動運行并加載必需
的模塊。
守護進程和系統程序
守護進程是永遠運行在后臺的程序,它默默地執行自己的任務。常見的守護進程有 in.ftpd(ftp 服
務器守護進程)、in.telnetd(telnet 服務器守護進程)和 syslogd(系統日志記錄守護進程)。
有些守護進程在運行時會嚴密監視配置文件,在配置文件改變時就會自動重新加載它。但是大多數守
護進程并不會自動重新加載配置文件。我們需要以某種方式“告訴”這些守護進程配置文件已經被發
生了改變并應該重新加載。可以通過使用服務命令重新啟動服務來達到這個目的(在 Red Hat Linux
系統上)。
例如,如果我們更改了網絡配置,就需要發出:
service network restart 。
注意:這些服務最常見的是 /etc/rc.d/init.d/* 目錄中存在的腳本,在系統被引導時由 init 啟動。
所以,您也可以執行如下操作來重新啟動服務:
/etc/rc.d/init.d/script-for-the-service start | stop | status
start、stop 和 status 是這些腳本接受的輸入值,用來執行操作。
用戶程序用戶或系統程序在每次啟動時都會讀取其配置文件。盡管如此,請記住,有些系統程序在計算機打開
時情況不一樣,它們的行為依賴于在 /etc/ 中的配置文件中讀到的內容。所以,用戶程序第一次啟
動時將從 /etc/ 目錄中存在的文件讀取缺省配置。然后,用戶可以通過使用 rc 和 .(點)文件來
定制程序,正如下面一節所示。
用戶配置文件:.(點)文件和 rc 文件
我們已經看到怎樣容易地配置程序。但是如果有的人不喜歡在 /etc/ 中配置程序的方式該怎么辦呢?
“普通”用戶不能簡單地進入 /etc 然后更改配置文件;從文件系統的角度來看,配置文件的所有者
是 root 用戶!這就是大多數用戶程序都定義兩個配置文件的原因:第一個是“系統”級別的,位于
/etc/;另一個屬于用戶“專用”,可以在他或她的主目錄中找到。
例如,我在我的系統中安裝了非常有用的 wget 實用程序。/etc/ 中有一個 /etc/wgetrc 文件。在
我的主目錄中,有一個名為 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用戶運行
wget 命令時,才會加載這個配置文件)。其它用戶在他們自己的主目錄(/home/other)中也可以
有 .wgetrc 文件;當然,只有這些用戶運行 wget 命令時,才會讀取這個文件。換句話說,/etc/wgetrc
文件為 wget 提供了“缺省”值,而 /home/xxx/.wgetrc 文件列舉了某個用戶的“定制項”。重要
的是這只是“一般規則”,并非所有情況都如此。例如,一個象 pine 一樣的程序,在 /etc/ 中并
沒有任何文件,它只在用戶主目錄中有一個定制配置文件,名為 .pinerc。其它程序可能只有 /etc/
中的缺省配置文件,而且可能不允許用戶“定制”這些配置文件(/etc 目錄中只有少數 config. 文
件是這種情況)。
通常使用的 rc 和 .(點)文件
文件名
描述
~/.bash_login
請參考“man bash”。如果
~/.bash_profile 不存在,bash 則將
~/.bash_login 作為
~/.bash_profile 處理。
~/.bash_logout
請參考“man bash”。在退出時由
bash 登錄 shell 引用。
~/.bash_profile
由 bash 登錄 shell 引用
/etc/profile 之后引用。
~/.bash_history
先前執行的命令的列表。
~/.bashrc
請參考“man bash”。由 bash 非登
錄交互式 shell 引用(沒有其它文
件)。除非設置了 BASH_ENV 或 ENV,
非交互式 shell 不引用任何文件。
~/.emacs
啟動時由 emac 讀取。
~/.forward
如果這里包含一個電子郵件地址,那
么所有發往 ~ 的所有者的郵件都會
被轉發到這個電子郵件地址。
~/.fvwmrc ~/.fvwm2rc
fvwm 和 fvwm2(基本的 X Window 管
理器)的配置文件。
~/.hushlogin
請參考“man login”。引起“無提
示”登錄(沒有郵件通知、上次登錄
信息或者 MOD 信息)。~/.mail.rc
郵件程序的用戶初始化文件。
~/.ncftp/
ncftp 程序的目錄;包含書簽、日志、
宏、首選項和跟蹤信息。請參閱 man
ncftp。ncftp 的目的是為因特網標準
文件傳輸協議(Internet standard
File Transfer Protocol)提供一個
強大而靈活的接口。它旨在替換系統
所使用的標準的 ftp 程序。
~/.profile
請參考“man bash”。如果
~/.bash_profile 和 ~/.bash_login
文件不存在,bash 則將 ~/.profile
作為 ~/.bash_profile 處理,并被其
它繼承 Bourn 的 shell 使用。
~/.pinerc
Pine 配置
~/.muttrc
Mutt 配置
~/.exrc
這個文件可以控制 vi 的配置。
示例:set ai sm ruler
在此文件中寫入上面一行會讓 vi 設
置自動縮進、匹配括號、顯示行號和
行-列這幾個選項。
~/.vimrc
缺省的“Vim”配置文件。和 .exrc
一樣。
~/.gtkrc
GNOME 工具包(GNOME Toolkit)。
~/.kderc
KDE 配置。
~/點虐 rc
ftp 缺省登錄名和密碼。
~/.rhosts
由 r- 工具(如 rsh、rlogin 等等)
使用。因為冒充主機很容易,所以安
全性非常低。
1. 必須由用戶(~/ 的所有者)或超
級用戶擁有。
2. 列出一些主機,用戶可以從這些主
機訪問該帳號。
3. 如果是符號鏈接則被忽略。
~/.rpmrc
請參閱“man rpm”。如果 /etc/rpmrc
不存在則由 rpm 讀取。
~/.signature
消息文本,將自動附加在從此帳號發
出的郵件末尾。
~/.twmrc
twm( The Window Manager)的配置
文件。~/.xinitrc
啟動時由 X 讀取(而不是由 xinit
腳本讀取)。通常會啟動一些程序。
示例:exec /usr/sbin/startkde
如果該文件中存在上面這行內容,那
么在從這個帳號發出 startx 命令
時,這一行就會啟動“KDE 視窗管理
器”(KDE Window Manager)。
~/.xmodmaprc
此文件被傳送到 xmodmap 程序,而且
可以被命名為任何文件(例如
~/.Xmodmap 和 ~/.keymap.km)。
~/.xserverrc
如果 xinit 可以找到要執行的 X,
xinit 就會將該文件作為 X 服務器
運行。
~/News/Sent-Message-IDs
gnus 的缺省郵件歷史文件。
~/.Xauthority
由 xdm 程序讀和寫,以處理權限。請
參閱 X、xdm 和 xauth 聯機幫助頁。
~/.Xdefaults,
~/.Xdefaults-hostname
在主機 hostname 的啟動過程中由 X
應用程序讀取。如果找不到
-hostname 文件,則查找 .Xdefaults
文件。
~/.Xmodmap
指向 .xmodmaprc;Red Hat 有使用這
個名稱的 .xinitrc 文件。
~/.Xresources
通常是傳送到 xrdb 以加載 X 資源
數據庫的文件的名稱,旨在避免應用
程序需要讀取一個很長
的 .Xdefaults 文件這樣的情況。(有
些情況曾經使用了 ~/.Xres。)
~/mbox
用戶的舊郵件。
3、重要的配置文件列表:
啟動引導程序配置文件
LILO /etc/lilo.conf
GRUB /boot/grub/menu.lst
系統啟動文件核腳本
主啟動控制文件 /etc/inittab
SysV 啟動腳本的位置 /etc/init.d、/etc/rc.d/init.d 或/etc/rc.d
SysV 啟動腳本鏈接的位置 /etc/init.d/rc?.d、/etc/rc.d/rc?.d 或/etc/rc?.d
本地啟動腳本 /etc/rc.d/rc.local、/etc/init.d/boot.local 或/etc/rc.boot 里的文件
網絡配置文件
建立網絡接口的腳本 /sbin/ifup
保存網絡配置數據文件的目錄 /etc/network、/etc/sysconfig/network 和
/etc/sysconfig/network-scripts保存解析 DNS 服務的文件 /etc/resolv.conf
DHCP 客戶端的配置文件 /etc/dhclient.conf
超級服務程序配置文件和目錄
inetd 配置文件 /etc/inetd.conf
TCP Wrappers 配置文件 /etc/hosts.allow 和/etc/hosts.deny
xinetd 配置文件 /etc/xinetd.conf 和/etc/xinetd.d 目錄里的文件
硬件配置
內核模塊配置文件 /etc/modules.conf
硬件訪問文件
Linux 設備文件 /dev 目錄里
保存硬件和驅動程序數據的文件 /proc 目錄里
掃描儀配置文件
SANE 主配置 /etc/sane.d/dll.conf
特定掃描儀的配置文件 /etc/sane.d 目錄里以掃描儀型號命名的文件
打印機配置文件
BSD LPD 核 LPRng 的本地打印機主配置文件 /etc/printcap
CUPS 本地打印機主配置和遠程訪問受權文件 /etc/cups/cupsd.conf
BSD LPD 遠程訪問受權文件 /etc/hosts.lpd
LPRng 遠程訪問受權文件 /etc/lpd.perms
文件系統
文件系統表 /etc/fstab
軟驅裝配點 /floppy、/mnt/floppy 或/media/floppy
光驅裝配點 /cdrom、/mnt/cdrom 或/media/cdrom
shell 配置文件
bash 系統非登錄配置文件 /etc/bashrc、/etc/bash.bashrc 或/etc/bash.bashrc.local
bash 系統登錄文件 /etc/profile 和/etc/profile.d 里的文件
bash 用戶非登錄配置文件 ~/.bashrc
bash 用戶登錄配置文件 ~/.profile
XFree86 配置文件核目錄
XFree86 主配置文件 /etc/XF86config、/etc/X11/XF86Config 或/etc/X11/XF86Config-4
字體服務程序配置文件 /etc/X11/fs/config
Xft 1.x 配置文件 /etcX11/XftConfig
Xft 2.0 配置文件 /etc/fonts/fonts.conf
字體目錄 /usr/X11R6/lib/X11/fonts 和/usr/share/fonts
Web 服務程序配置文件
Apache 主配置文件 /etc/apache、/etc/httpd 或/httpd/conf 里的 httpd.conf 或 httpd2.conf 文
件
MIME 類型文件 與 Apache 主配置文件在同一目錄里的 mime.types 或 apache-mime.types
文件服務程序配置文件
ProFTPd 配置文件 /etc/proftpd.conf
vsftpd 配置文件 /etc/vsftpd.conf
NFS 服務程序的輸出定義文件 /etc/exports
NFS 客戶端裝配的 NFS 輸出 /etc/fstab
Samba 配置文件 /etc/samba/smb.confSamba 用戶配置文件 /etc/samba/smbpasswd
郵件服務程序配置文件
sendmail 主配置文件 /etc/mail/sendmail.cf
sendmail 源配置文件 /etc/mail/sendmail.mc 或/usr/share/sendmail/cf/cf/linux.smtp.mc 或
其他文件
Postfix 主配置文件 /etc/postfix/main.cf
Exim 主配置文件 /etc/exim/exim.cf
Procmail 配置文件 /etc/procmailrc 或~/.procmailrc
Fetchmail 配置文件 ~/.fetchmailrc
遠程登錄配置文件
SSH 服務程序配置文件 /etc/ssh/sshd_config
SSH 客戶端配置文件 /etc/ssh/ssh_config
XDM 配置文件 /etc/X11/xdm 目錄下
GDM 配置文件 /etc/X11/gdm 目錄下
VNC 服務程序配置文件 /usr/X11R6/bin/vncserver 啟動腳本和~/.vnc 目錄里的文件
其他服務程序配置文件
DHCP 服務程序配置文件 /etc/dhcpd.conf
BIND 服務程序配置文件 /etc/named.conf 和/var/named/
NTP 服務程序配置文件 /etc/ntp.conf
rsync 就是遠程同步的意思remote sync.
rsync 被用在UNIX / Linux執行備份操作操作.
rsync 工具包被用來從一個位置到另一個位置高效地同步文件和文件夾. rsync可以實現在同一臺機器的不同文件直接備份,也可以跨服務器備份.
rsync 語法如下
從語法結構我們可以看出, 源和目標即可以在本地也可以在遠端. 如果是遠端的話,需要指明登錄用戶名, 遠端服務器名, 和遠端文件或目錄. 同時源可以是多個, 目標位置只能是一個.
說明:
-z: --compress 使用壓縮機制
-v: --verbose 打印詳細信息
-r: --recursive 以遞歸模式同步子目錄
注意: 同步完成后, 我們會發現文件的時間戳timestamps發生了改變.
有時我們希望拷貝或同步時, 時間戳不要發生變化, 源文件是什么時間戳,目標文件就是什么時間戳, 這時我們需要使用 -a --archive 歸檔模式選項. -a 選項相當于7個選項的組合 -rlptgoD
-r, --recursive: 遞歸模式Recursive mode
-l, --links: 將符號鏈接當作符號鏈接文件拷貝, 不拷貝符合鏈接指向的文件內容.
-p, --perms: 保留文件權限
-t, --times: 保留修改時間戳
-g, --group: 保留用戶組信息
-o, --owner: 保留用戶信息(需要超級用戶權限)
-D, 相當于 --devices --specials 的組合, 保留設備文件, 保留特殊文件.
同步完成后, 我們再來看文件屬性, 時間戳信息得到了保留, 不僅如此文件的所有者 和所在組也得到保留.
說明: Pubkeys 是一個普通文件
使用rsync, 也可以從本地拷貝多個文件或目錄到遠端, 以下即為示例:
注意:
與本地文件拷貝不同的地方在于, 當拷貝文件到遠程服務器時, 我們指定遠程主機上的用戶名, 服務器地址, 路徑等信息, 類是于使用scp命令拷貝, 如果沒有設置ssh免密碼登錄我們還需要提供遠程用戶的密碼等信息.有時你不想頻繁輸入密碼, 或者rsync運行在一個無人執守的腳本里面, 這是需要預先設置ssh免密登錄, 或者使用結合expect命令,自動輸入密碼, 但是出于安全考慮, 密碼需要加密. 所以在條件許可的情況下, 還是推薦設置ssh免密登錄.
與示例 4 稍有不同, 這時遠端目錄或文件作為源位置, 本地目錄或文件作為目標位置, 示例如下:
rsync 允許指定遠程主機上運行shell命令.
這時需要使用 -e 選項:
-e, --rsh=COMMAND 指定遠端使用的shell命令
Use rsync -e ssh to specify which remote shell to use. In this case, rsync will use ssh.
在一下特殊的使用場景中, 我們不希望拷貝文件時, 我們不希望拷貝過程覆蓋掉目標位置中用戶做出的修改. 這時我們需要使用 -u 選項明確的告訴rsync命令保留用戶在目標文件中作出的修改. 在下面的例子中, 文件Basenames是用戶基于上次的拷貝, 修改過的文件, 當我們使用了-u 選項后, 該文件中的修改將不會被覆蓋掉.
在某些特殊場景中, 我們只需要遠程服務器上的目錄結構, 而不希望花大量時間, 帶寬拷貝文件內容, 這時我們可以使用 -d, --dirs選項來達到目的.
有時我們希望拷貝文件時, 能實時的顯示拷貝進度, 以及傳輸速率等信息. 尤其是拷貝大文件時, 程序不輸出信息, 用戶往往無法區分程序是在響應中, 還是已經掛起, 在這種情況下如果使用 –progress 就會非常有幫助.
rsync –progress option displays detailed progress of rsync execution as shown below.
你也可以使用rsnapshot工具 (rsnapshot會調用rsync)來備份本地linux服務器, 或者備份遠程linux服務器.
有時我們希望目標文件和源文件保持嚴格一致, 不要多文件也不要少文件, 這是我們可能需要使用 -delete 選項來達到目的. 如果使用 -delete 選項, rsync將刪除目標位置多余的文件或文件夾. 此選項還可以結合--delete-excluded 選項一起使用, 添加一些例外的文件.
上述示例中, new-file.txt 是源文件中沒有的文件, 其將會在拷貝時被刪除掉.
在某些特殊的場景下, 我們只想更新, 目標位置已經存在的文件或目錄, 而不關心源位置的新文件, 這時我們可以使用-existing 選項僅僅更新已經存在的文件.
讓我們來驗證一下這個選項的功能, 首先在源端添加一個新文件 new-file.txt.
從上面的例子可以看到, 由于加了--existing選項新文件new-file.txt沒有被拷貝到目標位置
選項-i, --itemize-changes 非常有用, 當我們想了解目標位置和源位置的文件差異時.
在源端:
在目標端:
注意: 在上面的例子中, 源位置和目標位置有兩處差異. 第一, 源文件Basenames的所有者和組 與 目標文件不同, 第一Dirnames文件大小也不一樣.
現在讓我們來看看rsync會怎樣顯示這些差異
輸出信息只在相應文件前面顯示了9個字母來標識改變, 這些字母具體是什么意思呢? 請參考以下詳細說明
rsync 可以使用--include 和 --exclude 選項結合通配符進行文件或文件夾過濾
在上面的示例中, 僅僅以P打頭的文件和文件夾被包含了進來, 其他的文件都被過濾在拷貝的過程中被排除在外了.
可以使用--max-size 告訴rsync 不要拷貝大小超過某個值的文件, 可以使用K, M, G指定文件大小, M for megabytes and G for gigabytes.
rsync 有個重要優點就是, 可以做到在拷貝的過程中, 只拷貝發生變化了的部分, 而不是發送整個文件.
但是在某些場景中, 比如文件較少, 文件size較小時, 我們的帶寬又足夠大, cpu資源相對又貧乏, 我們不希望它這樣做, 因為畢竟計算源端和目標端的checksum, 并做對比, 也需要額外cpu開銷. 這時我們可以使用 -W, --whole-file 選項, 讓rsync不用計算那么多, 一上來就直接開始傳送文件. 我們可以像下面這么做.
15個Rsync命令實例
如何配置rsh服務
redhat linux下配置rsh和rcp- -
1:安裝前準備:
機器A:192.168.0.4 (安裝rsh server)
機器B:192.168.0.10 (rsh client 調用執行192.168.0.4的命令)
2: 首先確認機器A是否安裝rsh包:
[root@mg04 root]# rpm -aq |grep rsh
rsh-0.17-14
rsh-server-0.17-14
如果沒有安裝以上兩個包,請找到相關軟件安裝(如果是LINUX,可以從安裝碟中找到)
安裝包:
rpm -ivh rsh-0.17-5 (linux 操作系統)
rpm -ivh rsh-server-0.17-5 (linux 操作系統)
3:確認是否啟動rsh 服務:
方法一:
使用命令setup,查看service是否將[*] rsh 加上*,如果加上*表示可以啟動。
/etc/rc.d/init.d/xinetd restart 或者 service xinetd restart
方法二:
rsh 屬于xinetd服務,可以直接修改/etc/xinetd.d/rsh腳本文件。
service shell
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
}
當然方法很多,目的就是使用rsh服務能啟動。
/etc/rc.d/init.d/xinetd restart
檢查是否啟動: rsh server 監聽和TCP 是514。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在監聽說明服務器已經啟動。
4:配置rsh server:
修改/etc/securetty文件: echo rsh /etc/securetty
如果打算用root作為rsh用戶的話:
先用root登錄到機器A中進行以下操作:
cd ~/
echo "192.168.0.10 root" .rhosts 允許192.168.0.10 以root訪問
echo "192.168.0.4 root" .rhosts
重啟rsh server.
5:測試和注意的問題:
登錄到b機器進行測試: rsh -l root 192.168.0.204 ps -ef
看是否能看到結果。如果看到
[root@mg04 etc]# rsh -l root 192.168.0.204 ps -ef
Permission denied.
這是由于權權限問題,一般是由于 .rhosts沒有配置正確。.rhosts一般位于
rsh server服務器相對應賬號目錄下比如root(與.bash_profile在同一目錄)
rsh在執行命令有時會找不到。rsh 在調用命令是最好使用絕對路徑。默認搜索路徑為:
[root@mg04 etc]# rsh -l root 192.168.0.4 env |grep PATH
PATH=/usr/bin:/bin
rh8.0下rcp的用法設置
只對root用戶生效
1、在雙方root用戶根目錄下建立.rhosts文件,并將雙方的hostname加進去.在此之前應在雙方的/etc/hosts文件中加入對方的IP和hostname
2、把rsh服務啟動起來,redhat默認是不啟動的。方法:用執行ntsysv命令,在rsh選項前用空格鍵選中,確定退出。 然后執行:service xinetd restart即可。
3、到/etc/pam.d/目錄下,把rsh文件中的auth required /lib/security/pam_securetty.so一行用“#
網站標題:關于linux系統rsh命令的信息
標題網址:http://vcdvsql.cn/article36/ddsijpg.html
成都網站建設公司_創新互聯,為您提供用戶體驗、企業網站制作、動態網站、建站公司、App設計、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯