定期的なスケジュール、パッケージ管理、SED、およびシェルプログラミングの基礎
1、12時間ごとのバックアップおよび圧縮に/ etc /ディレクトリにファイル名の形式、 "etc-年の日は.tar.gzを指す- - - -月間を"保存する/バックアップディレクトリの
[ルート@ localhostの/]#のcrontabを- E
0 /12は タール/データ/バックアップは/ etc -zcfは/ usr / binに/ - 。$(DATE '+ M - %%% Y-D - H - %% M')tar.gz形式/ ECT / *
2 .rpmパッケージ管理の概要と応用例発揮
回転数がLinuxで動作することを可能にする非常に強力なパッケージ管理システムを簡単にソフトウェアパッケージをインストール、アップグレード、および削除になり、インストールする必要があり、アップグレード、アンインストール、およびクエリ、データベースの保守機能をチェックする。
RPMコマンド:RPM [オプション] [PACKAGE_FILE]
(1)インストール:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm -ivh PACKAGE_FILE ...
GENERAL OPTIONS:
-v:verbose,详细信息
-vv:更详细的输出
[install-options]:
-h:hash marks输出进度条;每个#表示2%的进度;
--test:测试安装,检查并报告依赖关系及冲突消息等;
--nodeps:忽略依赖关系;不建议;
--replacepkgs:重新安装
注意:rpm可以自带脚本;
四类:--noscripts
preinstall:安装过程开始之前运行的脚本,%pre , --nopre
postinstall:安装过程完成之后运行的脚本,%post , --nopost
preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun
postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun
--nosignature:不检查包签名信息,不检查来源合法性;
--nodigest:不检查包完整性信息;
(2)アップグレード:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-U:升级或安装;
-F:升级
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage:降级;
--force:强制升级;
注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核;
(2) 如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
(3)アン。
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...----allmatches:卸载所有匹配指定名称的程序包的各版本;
--nodeps:忽略依赖关系
--test:测试卸载,dry run模式
(4)問い合わせ:
rpm {-q|--query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
-a, --all:查询所有已经安装过的包;
-f FILE:查询指定的文件由哪个程序包安装生成;
-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
[query-options]
--changelog:查询rpm包的changlog;
-l, --list:程序安装生成的所有文件列表;
-i, --info:程序包相关的信息,版本号、大小、所属的包组,等;
-c, --configfiles:查询指定的程序包提供的配置文件;
-d, --docfiles:查询指定的程序包提供的文档;
--provides:列出指定的程序包提供的所有的CAPABILITY;
-R, --requires:查询指定的程序包的依赖关系;
--scripts:查看程序包自带的脚本片断;
用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...
(5)確認します。
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
包来源合法性验正和完整性验正:
来源合法性验正:
完整性验正:
获取并导入信任的包制作者的密钥:
对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
验正:
(1) 安装此组织签名的程序时,会自动执行验正;
(2) 手动验正:rpm -K PACKAGE_FILE
(6)データベースの再構成を:
RPMマネージャデータベースパス:の/ var / libに/回転数/
クエリー:ここでデータベースによって行わ。
获取帮助:
CentOS 6:man rpm
CentOS 7:man rpmdb
rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]
--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;
--rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;
- yumの設定と使用方法の要約やyumの民間倉庫を作成します。
(1)yumの回転数は、問題のパッケージを解決するために頼ることができ、フロントエンドツールです。/etc/yum.confプロファイルがすべての倉庫のための一般的な構成を提供する1つが、倉庫の構成ファイルが/etc/yum.repos.d/*.repoである:YUM構成ファイルは2つの部分に分割されます。yumのログファイルは/etc/log/yum.logファイルに保存されます。
yumのコマンドを使用します。
yumの[オプション] [コマンド] [用パッケージ変更...]显示仓库列表: repolist [all|enabled|disabled] 显示程序包: yum list [all | glob_exp1] [glob_exp2] [...] yum list {available|installed|updates} [glob_exp1] [...] 安装程序包: install package1 [package2] [...] reinstall package1 [package2] [...] (重新安装) 升级程序包: update [package1] [package2] [...] downgrade package1 [package2] [...] (降级) 检查可用升级: check-update 卸载程序包: remove | erase package1 [package2] [...] 查看程序包information: info [...] 查看指定的特性(可以是某文件)是由哪个程序包所提供: provides | whatprovides feature1 [feature2] [...] 清理本地缓存: clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 构建缓存: makecache 搜索: search string1 [string2] [...] 以指定的关键字搜索程序包名及summary信息; 查看指定包所依赖的capabilities: deplist package1 [package2] [...] 查看yum事务历史: history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats] 安装及升级本地程序包: localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update) 包组管理的相关命令: groupinstall group1 [group2] [...] groupupdate group1 [group2] [...] grouplist [hidden] [groupwildcard] [...] groupremove group1 [group2] [...] groupinfo group1 [...]
(2)民間のyumリポジトリを作成
[root@localhost yum.repos.d]# vim epel.repo
[epel]
name=Fedora EPEL
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
- ユーザメニューには、以下を示しています達成するためのスクリプトを書く:
(1)ディスク:ディスクの情報を表示する情報
(2)MEM:ショーメモリ情報情報
(3)CPU:ショーCPU情報の情報
(*)が終了/bin/bash cat <<EOF disk)show disks info mem)show mem info cpu)show cpu info *)QUIT EOF read -p "Your choice": option if [[ "${option}" == "disk" ]];then fdisk -l /dev/[sh]d[a-z] elif [[ "${option}" == "mem" ]];then free -m elif [[ "${option}" == "cpu" ]];then lscpu else echo "Unkown option" exit 3 fi
- 例とsedの使用方法の概要は実証
:1.使用法
[OPTION] ...「スクリプト」[入力ファイル] ... sedの
スクリプト:
住所区切り編集コマンド
一般的に使用されるオプション:-n:不输出模式空间中的内容至屏幕; -e script, --expression=script:多点编辑; -f /PATH/TO/SED_SCRIPT_FILE 每行一个编辑命令; -r, --regexp-extended:支持使用扩展正则表达式; -i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ; 地址定界: (1) 空地址:对全文进行处理; (2) 单地址: #:指定行; /pattern/:被此模式所匹配到的每一行; (3) 地址范围 #,#: #,+#: #,/pat1/ /pat1/,/pat2/ $:最后一行; (4) 步进:~ 1~2:所有奇数行 2~2:所有偶数行 编辑命令: d:删除; p:显示模式空间中的内容; a \text:在行后面追加文本“text”,支持使用\n实现多行追加; i \text:在行前面插入文本“text”,支持使用\n实现多行插入; c \text:把匹配到的行替换为此处指定的文本“text”; w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中; r /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并; =:为模式匹配到的行打印行号; !:条件取反; 地址定界!编辑命令; s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等; 替换标记: g:全局替换; w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中; p:显示替换成功的行; 高级编辑命令: h:把模式空间中的内容覆盖至保持空间中; H:把模式空间中的内容追加至保持空间中; g:把保持空间中的内容覆盖至模式空间中; G:把保持空间中的内容追加至模式空间中; x:把模式空间中的内容与保持空间中的内容互换; n:覆盖读取匹配到的行的下一行至模式空间中; N:追加读取匹配到的行的下一行至模式空间中; d:删除模式空间中的行; D:删除多行模式空间中的所有行;
例と2が示す:
第三列の(1)印刷/ etc / passwdファイル、オリジナル文書内のすべての行が印刷されますsed ‘3p’ /etc/passwd
(2)プリントのみの/ etc / passwdの三行目ファイルsed -n ‘3p’ /etc/passwd
(3)のみ印刷の/ etc / 1行目〜4行目は、ファイルPASSWDsed -n '1,4p' /etc/passwd
(4)プリントのみの/ etcすべての行/ passwdファイルのパッケージルート文字行は、sed -n '/root/p' /etc/passwd
(5)印刷ライン番号の最初の行を、第2の行ライン印刷サイクルの内容が全て一致を印刷しますラインsed -n -e '/root/p' -e '/root/=' /etc/passwd
(6)は、次のラインマッチングスーパーマンラインに追加され、行は上追加します。複数の行を追加サポートしています。sed ‘/root/a\superman\nover’ /etc/passwd
ライン超人を添加することにより、整合ライン(7)、及び上に新しい行を追加します。複数の行を追加サポートしています。sed ‘/root/i\superman\nover’ /etc/passwd
(8)以上の新しいラインスーパーマンのために、一致する行ラインを置き換えます。サポート複数の行を交換してください。sed ‘/root/c\superman\nover’ /etc/passwd
(9)空のファイルと印刷行削除sed ‘/^$/d’ file
ルートrootsuperman文字列を置換するために(10)があると、このような行の複数、各試合の代表的な結果は、最初の一致文字列照合結果を選択しますsed -n 's/root/&superman/p' /etc/passwd
( 11)すべての空白文字は/ etc / fstabには##の#記号とバックで始まるすべての行をファイルに削除されますsed 's@^#[[:space:]]*@@' /etc/fstab
- bashで統計はより大きい又はIP 400の数に等しく、順序付けられたアクセス・ログ・ファイルのステータス・コードを得る
(1)awk '$9>400{print $1}' /var/log/httpd/access_log | sort -n | uniq -c
(2)sed -nr 's@^(.*)- -.*" ([0-9]{3}).*@\1,\2@p' /var/log/httpd/access_log | grep '.* ,[4|5].*' | sort -nr | uniq -c
- 自家製の取り付けのyumソースのftp、opensshの、カール、wgetの、tcpdumpをして他のパッケージを使用して
[root@httpd-server yum.repos.d]# vim epel.repo [epel] name=Fedora EPEL baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ gpgcheck=0
yum install -y ftp openssh curl wget tcpdum &> /dev/null