如何在虚拟机里配置ip地址?
1.临时配置ip地址,重新启动系统会失效
[root@chinaitsoft ~]# ip add (查看ip地址(ip address))
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:5b:6e:39 brd ff:ff:ff:ff:ff:ff
inet 172.16.80.80/16 brd 172.16.255.255 scope global eth0
inet6 fe80::20c:29ff:fe5b:6e39/64 scope link
valid_lft forever preferred_lft forever
[root@chinaitsoft ~]#
eth0 是第1块网卡。eth即ethernet(以太网)
eth1 是第2块网卡。
PS:
仅仅是redhat 5、6 系统里,到了redhat7 时候,不一样。
2.第2步配置ip
# ifconfig eth0 172.16.80.81/16
给eth0网卡设置ip地址为172.16.80.81 子网掩码为255.255.0.0
3.然后再使用xshell连接到ip 172.16.80.81
VMware的配置
菜单栏Edit –>viturl network editor(虚拟网络编辑器)
虚拟机里的网卡类型:
- VMnet0 —-》桥接bridged
—》可以选择无线网卡也可以选择有线网卡(推荐)—》连接到本地连接网络接口通信 —》你的虚拟器的ip地址需要和本地连接的ip地址是相同网段; - VMnet1 —-》hostonly —》只是和你本机通信—》VMware Network Adapter
VMnet1 —》你的虚拟器的ip地址需要和VMNET1的ip地址是相同网段 - VMnet8 —-》NAT —-》VMware Network Adapter VMnet8
–》你的虚拟器的ip地址需要和本地连接的vmnet8接口是相同网段
Linux中的压缩命令
windows里的压缩软件:winrar 、zip、好压、2345
windows里的压缩文件,是否在linux下可以解压缩?
答: .rar 格式的压缩包在linux下不是特别容易打开,需要安装rar相关的软件,不是默认的压缩软件。
建议在windows下打包为.zip的压缩包,linux下非常方便解压。
tar、zip、gzip、bzip2详解
linux下的压缩格式:
- .tar.xz
- .tar.gz
- .tar.bz2
- .zip
- .iso—->需要相应的软件打开
windows里的压缩格式: - .rar
- .zip
- .iso
zip命令详解
用法:zip 新压缩文件名 文件1 文件2
# cp /etc/hosts .
# cp /boot . -r
# zip hosts.zip hosts
将hosts文件压缩成hosts.zip
unzip解压
格式:unzip [-l] 文件名
# unzip boot.zip
Archive: boot.zip
creating: boot/
注意:
- zip不能对文件夹进行压缩;
- zip 在压缩和解压的过程中源文件始终保留。
gzip压缩
格式:gzip 要压缩文件
gzip 直接在源文件上打压缩包,压缩包的扩展名为.gz
# gunzip hosts.gz 解压缩
# gzip -9 hosts 还是压缩效果会好一些
PS:- 9表示高压缩比,默认为6,最高为9。
# cat hosts.gz 会显示乱码
# zcat hosts.gz 不会显示乱码
bzip2压缩
格式:bzip2 要压缩文件
bzip2 直接在源文件上打压缩包,压缩包的扩展名为 .bz2
小结:
压缩命令 | 压缩格式 | 解压命令 | 是否在源文件操作 |
---|---|---|---|
zip | .zip | unzip | 否 |
gzip | .gz | gunzip或gzip -d | 是 |
bzip2 | .bz2 | bunzip2或者bzip2 -d | 是 |
三个命令相同点:
都只能对 文件 进行压缩,不能对文件夹进行压缩。
tar命令
tar 可以对文件和文件夹进行压缩。
- 用途:制作归档文件、释放归档文件
- 格式:tar [选项]… 归档文件名 源文件或目录
tar [选项]… 归档文件名 [-C 目标目录] - 常用命令选项 (tar -czvf)
- -c:创建 .tar 格式的包文件 -c,即-create;
- -x:解开.tar格式的包文件 -x, 即-extract(提取);
- -v:输出详细信息 -v, 即-verbose(冗长的,多余的);
- -f:表示使用归档文件 -f, 即-file;
- -t:列表查看包内的文件;
- -C:指定解压目录;
- -t, –list,list the contents(内容) of an archive(文档);
- -p:保持原文件的原来属性,即-preserve-permissions;
- -P:保持原文件的绝对路径;
- -j :即–bzip2
- -z :即–gzip
- -J –xz
# tar -czvf messages_passwd.tar.gz messages passwd
同时将2个文件打包成messages_passwd.tar.gz ,此文件存放在当前目录下
# tar -tf messages_passwd.tar.gz 查看压缩里的内容
messages
passwd
# tar -czf messages_passwd.tar.gz messages passwd
hosts
再次打包文件,如果文件名相同,存放的路径也相同,会替换原来的文件
# tar -czf /backup/messages_passwd.tar.gz messages
passwd
指定压缩打包文件存放的路径在/backup目录下,不指定默认情况下在当前目录。
tar三种压缩格式的对比:
# tar czvf messages.tar.gz messages
messages
# tar cjvf messages.tar.bz2 messages
messages
# tar cJvf messages.tar.xz messages
messages
# ls
hosts messages_passwd.tar.gz messages.tar.gz passwd
messages messages.tar.bz2 messages.tar.xz passwd.tar.gz
# ll
总用量 336
-rw-r--r-- 1 root root 326 12月 17 08:19 hosts
-rw------- 1 root root 229215 12月 17 08:11 messages
-rw-r--r-- 1 root root 30276 12月 17 08:19 messages_passwd.tar.gz
-rw-r--r-- 1 root root 18382 12月 17 08:25 messages.tar.bz2
-rw-r--r-- 1 root root 28829 12月 17 08:24 messages.tar.gz
-rw-r--r-- 1 root root 15156 12月 17 08:25 messages.tar.xz
-rw-r--r-- 1 root root 3242 12月 17 08:11 passwd
-rw-r--r-- 1 root root 1256 12月 17 08:22 passwd.tar.gz
结论:xz 压缩效果最好
xz—》bzip2—》gz
xf 可解压.tar.gz 、 .tar.bz2 、 .tar.xz 的压缩包
PS:解压文件的时候,解压出来的文件默认情况下放在当前目录,如果当前目录下有相同的文件,后来解压出来的文件会替换原来的文件。
# tar xf messages.tar.bz2
解压messages.tar.bz2文件,存放在当前目录下
# tar xvf messages.tar.bz2
messages
-C 指定解压目录
# tar xf messages.tar.bz2 -C /liuzhuang/
将当前目录下的messages.tar.bz2解压到/liuzhuang目录下
压缩小技巧:
- 创建压缩文件的时候,使用绝对路径指定创建压缩文件的路径;
- 解压缩的时候,使用-C 指定压缩文件存放的路径
PS:打包备份文件的时候,使用绝对路径会有相关提醒,例如:tar:
从成员名中删除开头的“/”
因为解压的时候,不指定路径,就直接解压到当前目录,如果你带着/,解压的时候如果替换原来的文件,会导致原来的文件丢失。不是我们希望看到的。
小例子:
# tar czf /lianxi/bak/passwd_host_boot.tar.gz
/etc/passwd /etc/hosts /boot
tar: 从成员名中删除开头的“/”
# LANG=en_US.UTF-8
# tar czf /lianxi/bak/passwd_host_boot.tar.gz
/etc/passwd /etc/hosts /boot
tar: Removing leading `/' from member names---》正常
一点点的小结
创建压缩包
- -cjvf —>tar.bz2
- -czvf —>tar.gz
- -cJvf —>tar.xz
- —>默认情况下redhat 5是没有安装xz这个软件
xf 解压
tf 查看
- # cat xxx.gz 会显示乱码
- # zcat xxx.gz 不会显示乱码
练习:
事前将/lianxi目录下的内容清空:
rm -rf /lianxi/*
- 创建一个目录在/lianxi下叫tar;
- 进入tar目录,复制/etc/hosts文件和/etc/passwd到tar目录下;
- 复制/boot目录到tar目录下
- 将当前目录下的boot目录打包放在/lianxi/tar目录下叫boot.tar.gz;(tar czvf /lianxi/tar/boot.tar.gz boot)
- 查看boot.tar.gz文件里的内容;(tar tf boot.tar.gz)
- 将hosts文件和passwd文件打包放到host_passwd.tar.bz2 文件(tar cjvf host_passwd_tar.bz2 hosts passwd )
- 查看host_passwd.tar.bz2文件里的内容(tf);
- 将/boot/目录和/etc/passwd、/var/log目录备份到/lianxi目录下叫boot_pw_log.tar.xz(cJvf);
- 新建/bak目录,然后将/lianxi目录下的boot_pw_log.tar.xz解压到/bak目录下。
(tar xf /lianxi/boot_pw_log.tar.xz -C /bak)
备份的时候排除
将/bak目录下的httpd-2.2.31目录,排除不备份到/lianxi/no_httpd.tar.gz目录里:
# tar czvf /lianxi/no_httpd.tar.gz /bak --exclude=/bak/httpd-2.2.31
排除多个文件使用{}括起来,中间使用逗号分隔:
# tar czvf /lianxi/no_httpd.tar.gz /bak
--exclude=/bak/{httpd-2.2.31,var}
练习:写一个脚本实现备份/var/log目录下的所有文件到/bak目录下,要求文件名是包含当天日期,文件名例如:2015-12-27-16_30-log.tar.gz。同时要求删除七天前的备份文件,只保留最近7天的。
分析:
备份—》tar
tar czvf /bak/log.tar.gz /var/log
date +%F-%H_%M_%S
find /bak -mtime +7 -exec rm -rf {} \;
# date
2015年 12月 17日 星期四 10:23:46 CST
# date +%F
2015-12-17
# date +%F-%H_%M
2015-12-17-10_24
PS:脚本文件—》其实就是里面放了很多条命令的文件,命令在执行的时候,从第1条开始执行,直到最后一条,如果中间有条件判断,根据相应的判断条件来进行了。
答案:
[root@chinaitsoft lianxi]# vim back_log.sh
#!/bin/bash
#指定执行脚本的shell是使用bash
b_time=`date +%F-%H_%M_%S`
#获得当时的时间
tar czf /bak/$b_time-log.tar.gz /var/log
#备份/var/log到/bak
find /bak -mtime +7 -exec rm -rf {} \;
#删除7天前的文件
[root@chinaitsoft lianxi]# bash back_log.sh 执行脚本
tar: 从成员名中删除开头的“/”
[root@chinaitsoft lianxi]#
多执行几次脚本,多产生几个备份文件
[root@chinaitsoft bak]# ls
2015-12-17-10_38_12-log.tar.gz 2015-12-17-10_39_22-log.tar.gz
2015-12-17-10_38_19-log.tar.gz 2015-12-17-10_39_23-log.tar.gz
2015-12-17-10_38_21-log.tar.gz 2015-12-17-10_39_24-log.tar.gz
2015-12-17-10_38_22-log.tar.gz 2015-12-17-10_40_17-log.tar.gz
2015-12-17-10_39_21-log.tar.gz
[root@chinaitsoft bak]# date
2015年 12月 17日 星期四 10:42:17 CST
[root@chinaitsoft bak]# date -s 2015-12-30(调整系统的时间为2015-12-30)
2015年 12月 30日 星期三 00:00:00 CST
[root@chinaitsoft bak]# date
2015年 12月 30日 星期三 00:00:01 CST
[root@chinaitsoft lianxi]# bash back_log.sh 再次执行脚本看效果
tar: 从成员名中删除开头的“/”
[root@chinaitsoft lianxi]# bash back_log.sh
tar: 从成员名中删除开头的“/”
[root@chinaitsoft lianxi]# cd /bak
[root@chinaitsoft bak]# ls(会发现原来的备份文件被删除)
2015-12-30-00_01_34-log.tar.gz 2015-12-30-00_01_36-log.tar.gz
[root@chinaitsoft bak]#
[ ] 判断文件是否存在
# [ -d /bak ]
注意:
- 语法[] 前后要有空格;
- 作用是判断/bak目录是否存在,如果存在$?返回值为0 ,如果非0,就说明目录不存在。
# echo $?
查看返回值
- $?代表上一条命令执行是否成功的返回值,如果执行成功就为0,不成功就是非0
[ -d /bak ]&&echo /bak is exist ||mkdir /bak
[ -d /bak ] 判断文件夹是否存在 (directory)
命令 && command1 || command2 ,如果命令执行成功,则执行命令1,否则执行命令2
- if [ -d /bak ] 条件如果成立(命令执行成功)执行echo /bak is exist ,否则执行mkdir /bak
改良了的脚本:
[root@chinaitsoft lianxi]# vim back_log.sh
#!/bin/bash
[ -d /bak ]&&echo "/bak is existing"||mkdir /bak
b_time=`date +%F-%H_%M_%S`
tar czf /bak/$b_time-log.tar.gz /var/log &>/dev/null&&echo "backup ok"||echo "backup failed"
find /bak -mtime +7 -exec rm -rf {} \;
- &>/dev/null 将命令的任何输出,不管正确的还是错误的都重定向到/dev/null文件;
- /dev/null 文件,是一个黑洞文件,任何内容重定向到此,都会消失,不保存。