赞
踩
~]# mkdir /backup 在/root目录下创建备份命令脚本: vim backup-ect.cron #!/bin/bash # tar -zcf /backup/etc-$(date +%Y-%m-%d-%H-%M).tar.gz /etc/ :wq chmod a+x /root/backup-ect.cron crontab -e SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed * */12 * * * /bin/bash /root/backup-etc.cron :wq conrtab -l cat /var/spool/cron/USERNAME
安装、升级、卸载、查询和校验、数据库维护
rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
安装:-i, --install
升级:-U, --update, -F, --freshen
卸载:-e, --erase
查询:-q, --query
校验:-V, --verify
数据库维护:–builddb, --initdb
安装:
rpm -ivh PACKAGE_FILE …
~]# rpm -ivh zsh-5.0.2-31.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-31.el7 ################################# [100%]
卸载:
~]# rpm -evh zsh
Preparing... ################################# [100%]
Cleaning up / removing...
1:zsh-5.0.2-31.el7 ################################# [100%]
升级:
~]# rpm -Uvh zsh-5.0.2-31.el7.x86_64.rpm
Preparing... ################################# [100%]
package zsh-5.0.2-31.el7.x86_64 is already installed
查询:
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:查看程序包自带的脚本片断;
例1:
查询/bin/zsh由哪个程序包安装
~]# rpm -qf /bin/zsh
zsh-5.0.2-31.el7.x86_64
查询/usr/bin/find由哪个程序包安装
~]# rpm -qf /usr/bin/find
findutils-4.5.11-6.el7.x86_64
例2:
查询zsh程序包的相关信息
~]# rpm -qi zsh Name : zsh Version : 5.0.2 Release : 31.el7 Architecture: x86_64 Install Date: Sun 03 Mar 2019 10:00:10 PM CST Group : System Environment/Shells Size : 5854390 License : MIT Signature : RSA/SHA256, Mon 12 Nov 2018 10:49:55 PM CST, Key ID 24c6a8a7f4a80eb5 Source RPM : zsh-5.0.2-31.el7.src.rpm Build Date : Wed 31 Oct 2018 12:48:17 AM CST Build Host : x86-01.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://zsh.sourceforge.net/ Summary : Powerful interactive shell Description : The zsh shell is a command interpreter usable as an interactive login shell and as a shell script command processor. Zsh resembles the ksh shell (the Korn shell), but includes many enhancements. Zsh supports command line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and more.
例3:
查看zsh程序包安装后所生成的文件信息:
~]# rpm -ql zsh /bin/zsh /etc/skel/.zshrc /etc/zlogin /etc/zlogout /etc/zprofile /etc/zshenv /etc/zshrc ... /usr/lib64/zsh /usr/lib64/zsh/5.0.2 /usr/lib64/zsh/5.0.2/zsh ... /usr/share/doc/zsh-5.0.2 /usr/share/doc/zsh-5.0.2/BUGS /usr/share/doc/zsh-5.0.2/CONTRIBUTORS /usr/share/info/zsh.info-1.gz /usr/share/info/zsh.info-2.gz ... /usr/share/man/man1/zsh.1.gz /usr/share/man/man1/zshall.1.gz /usr/share/man/man1/zshbuiltins.1.gz ... /usr/share/zsh /usr/share/zsh/5.0.2 /usr/share/zsh/5.0.2/functions /usr/share/zsh/5.0.2/functions/VCS_INFO_adjust ... /usr/share/zsh/site-functions
例4:
查看未安装的rpm程序包信息,通过选项p实现:
(1)查看程序包信息:
~]# rpm -qpi zsh-5.0.2-31.el7.x86_64.rpm Name : zsh Version : 5.0.2 Release : 31.el7 Architecture: x86_64 Install Date: (not installed) Group : System Environment/Shells Size : 5854390 License : MIT Signature : RSA/SHA256, Mon 12 Nov 2018 10:49:55 PM CST, Key ID 24c6a8a7f4a80eb5 Source RPM : zsh-5.0.2-31.el7.src.rpm Build Date : Wed 31 Oct 2018 12:48:17 AM CST Build Host : x86-01.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://zsh.sourceforge.net/ Summary : Powerful interactive shell Description : The zsh shell is a command interpreter usable as an interactive login shell and as a shell script command processor. Zsh resembles the ksh shell (the Korn shell), but includes many enhancements. Zsh supports command line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and more.
(2)查看程序包安装后所生成的文件:
~]# rpm -qpl zsh-5.0.2-31.el7.x86_64.rpm /bin/zsh /etc/skel/.zshrc /etc/zlogin /etc/zlogout /etc/zprofile /etc/zshenv /etc/zshrc ... /usr/lib64/zsh /usr/lib64/zsh/5.0.2 /usr/lib64/zsh/5.0.2/zsh ... /usr/share/doc/zsh-5.0.2 /usr/share/doc/zsh-5.0.2/BUGS /usr/share/doc/zsh-5.0.2/CONTRIBUTORS /usr/share/info/zsh.info-1.gz /usr/share/info/zsh.info-2.gz ... /usr/share/man/man1/zsh.1.gz /usr/share/man/man1/zshall.1.gz /usr/share/man/man1/zshbuiltins.1.gz ... /usr/share/zsh /usr/share/zsh/5.0.2 /usr/share/zsh/5.0.2/functions /usr/share/zsh/5.0.2/functions/VCS_INFO_adjust ... /usr/share/zsh/site-functions
例5:查看程序包的依赖关系:
~]# rpm -qpR zsh-5.0.2-31.el7.x86_64.rpm /bin/sh /bin/sh /bin/sh /bin/sh /bin/zsh /sbin/install-info /sbin/install-info config(zsh) = 5.0.2-31.el7 coreutils grep grep libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.15)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libncursesw.so.5()(64bit) librt.so.1()(64bit) librt.so.1(GLIBC_2.2.5)(64bit) libtinfo.so.5()(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rtld(GNU_HASH) rpmlib(PayloadIsXz) <= 5.2-1
3、yum的配置和使用总结以及yum私有仓库的创建。
例1:通过yum工具安装tree程序包
~]# yum -y install tree Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package tree.x86_64 0:1.6.0-10.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Installing: tree x86_64 1.6.0-10.el7 base 46 k Transaction Summary ============================================================================================================================= Install 1 Package Total download size: 46 k Installed size: 87 k Downloading packages: tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : tree-1.6.0-10.el7.x86_64 1/1 Verifying : tree-1.6.0-10.el7.x86_64 1/1 Installed: tree.x86_64 0:1.6.0-10.el7 Complete!
例2:通过yum工具卸载程序包
~]# yum -y remove tree Loaded plugins: fastestmirror, langpacks Resolving Dependencies --> Running transaction check ---> Package tree.x86_64 0:1.6.0-10.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Removing: tree x86_64 1.6.0-10.el7 @base 87 k Transaction Summary ============================================================================================================================= Remove 1 Package Installed size: 87 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : tree-1.6.0-10.el7.x86_64 1/1 Verifying : tree-1.6.0-10.el7.x86_64 1/1 Removed: tree.x86_64 0:1.6.0-10.el7 Complete!
例3:查看程序包信息
~]# yum info tree Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Available Packages Name : tree Arch : x86_64 Version : 1.6.0 Release : 10.el7 Size : 46 k Repo : base/7/x86_64 Summary : File system tree viewer URL : http://mama.indstate.edu/users/ice/tree/ License : GPLv2+ Description : The tree utility recursively displays the contents of directories in a : tree-like format. Tree is basically a UNIX port of the DOS tree : utility.
例4:查看程序包依赖关系
~]# yum deplist tcpdump Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com package: tcpdump.x86_64 14:4.9.2-3.el7 dependency: /bin/sh provider: bash.x86_64 4.2.46-31.el7 dependency: libc.so.6(GLIBC_2.14)(64bit) provider: glibc.x86_64 2.17-260.el7_6.3 dependency: libcap-ng.so.0()(64bit) provider: libcap-ng.x86_64 0.7.5-4.el7 dependency: libcrypto.so.10()(64bit) provider: openssl-libs.x86_64 1:1.0.2k-16.el7 dependency: libcrypto.so.10(OPENSSL_1.0.2)(64bit) provider: openssl-libs.x86_64 1:1.0.2k-16.el7 dependency: libcrypto.so.10(libcrypto.so.10)(64bit) provider: openssl-libs.x86_64 1:1.0.2k-16.el7 dependency: libpcap >= 14:1.5.3-10 provider: libpcap.x86_64 14:1.5.3-11.el7 provider: libpcap.i686 14:1.5.3-11.el7 dependency: libpcap.so.1()(64bit) provider: libpcap.x86_64 14:1.5.3-11.el7 dependency: rtld(GNU_HASH) provider: glibc.x86_64 2.17-260.el7_6.3 provider: glibc.i686 2.17-260.el7_6.3 dependency: shadow-utils provider: shadow-utils.x86_64 2:4.1.5.1-25.el7
4、写一个脚本实现列出以下菜单给用户:
(1)disk:show disk info信息
(2)mem: show memory info信息
(3)cpu: show cpu info信息
(*)quit
#!/bin/bash # cat << EOF disk) show disks info mem) show memory 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
5、sed用法总结并结合实例演示
sed [OPTION]… ‘script’ [input-file] …
script:
地址定界编辑命令
常用选项:
-n:不输出模式空间中的内容至屏幕;
-e script, --expression=script:多点编辑;
-f /PATH/TO/SED_SCRIPT_FILE
每行一个编辑命令;
-r, --regexp-extended:支持使用扩展正则表达式;
-i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ;
~]# sed -e 's@^#[[:space:]]*@@' -e '/^UUID/d' /etc/fstab
地址定界:
(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:显示替换成功的行;
练习1:删除/boot/grub/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符;
~]# sed 's@^[[:space:]]\+@@' /etc/grub2.cfg
练习2:删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符;
~]# sed 's@^#[[:space:]]*@@' /etc/fstab
练习3:输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname;
~]# echo "/var/log/messages/" | sed 's@[^/]\+/\?$@@'
~]# echo "/var/log/messages" | sed -r 's@[^/]+/?$@@'
高级编辑命令:
h:把模式空间中的内容覆盖至保持空间中;
H:把模式空间中的内容追加至保持空间中;
g:把保持空间中的内容覆盖至模式空间中;
G:把保持空间中的内容追加至模式空间中;
x:把模式空间中的内容与保持空间中的内容互换;
n:覆盖读取匹配到的行的下一行至模式空间中;
N:追加读取匹配到的行的下一行至模式空间中;
d:删除模式空间中的行;
D:删除多行模式空间中的所有行;
示例:
sed -n 'n;p' FILE:显示偶数行;
sed '1!G;h;$!d' FILE:逆序显示文件的内容;
sed ’$!d' FILE:取出最后一行;
sed '$!N;$!D' FILE:取出文件后两行;
sed '/^$/d;G' FILE:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行;
sed 'n;d' FILE:显示奇数行;
sed 'G' FILE:在原有的每行后方添加一个空白行;
6、 用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序
7、 使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包
(1)挂载光盘,创建本地仓库
~]# mount -r /dev/sr0 /media/cdrom/ ~]# cp -r /media/cdrom/Packages/ /tmp/yum/ ~]# createrepo /tmp/yum/Packages/ ~]# vim /etc/yum.repos.d/local.repo [local] name=local repo baseurl=file:///tmp/yum/packages/Packages/ gpgcheck=0 ~]# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status local local repo 4,021 repolist: 4,021 ~]# yum -y install httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-88.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================================================== Installing: httpd x86_64 2.4.6-88.el7.centos local 2.7 M Transaction Summary =========================================================================================================================================================================================== Install 1 Package Total download size: 2.7 M Installed size: 9.4 M Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : httpd-2.4.6-88.el7.centos.x86_64 1/1 Verifying : httpd-2.4.6-88.el7.centos.x86_64 1/1 Installed: httpd.x86_64 0:2.4.6-88.el7.centos Complete!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。