find命令用法整理

1.批量修改文件权限

查找当前文件夹下的文件并修改子文件夹的权限为755

#find path -type d -exec chmod 755 {} \; 

查找当前文件夹下的文件并修改目录下所有文件为644

#find path -type f -exec chmod 644 {} \; 

2.查找所属某个用户的文件

#find <dirname> -user 'apache'

SVN一些用法整理

在做源码版本管理的时候,有时整个大版本的升级,会替换很多文件,也会新增很多文件,我们需要在升级完成之后对整个网站加入版本管理。

1.对更新删除导致丢失的文件进行批量删除

#svn status | awk '{if($1 == "!"){print $2}}' | xargs -r svn delete

原理是通过查询当前文件夹的文件状态,用awk进行分割获取到!标记的文件名称,附加给xargs 分别执行svn delete 操作。
如果中途遇到报错,可以多运行几次,有些文件可能已经丢失了。

2.对新增的文件进行批量新增

#svn status | awk '{if($1 == "?"){print $2}}' | xargs -r svn add

这个语句的原理和上一条删除是一样的,只是针对文件的状态标记进行筛选操作。

3.对新增或者修改的文件进行批量提交入库

#svn status | awk '{if($1 == "M" || $1 == "A"){print $2}}' | xargs -r svn commit -m "这里是备注"

同样的方法,只是在提交入库的时候需要提交备注名称,不然会报错。使用-m参数加上备注内容即可,比如备注“将wordpress从5.0.1更新到5.0.2版本”,方便下次查看回滚版本。

4.查看当前目录版本控制的文件和目录列表

#svn list

5.查看当前文件夹的版本控制情况

#svn status

windows状态图标覆盖问题

最近这段时间开始使用 microsoft 的 onedrive,刚开始重装完系统的时候更新了软件,发现同步的文件夹是有状态图标的,如下图:

但是因为最近要做一个项目,所以下载了SVN版本控制,当我安装完svn之后是可以正常显示图标状态的,该正常更新的更新,该添加的显示添加。直到今天早上开机,当我点开onedrive的时候,发现状态图标不显示了。有状态到无状态是很难受的,后来网上搜索,发现是因为windows下的软件共用图标位置数量问题。

现在我默认把360的一个优盘图标改名到底部,然后将腾讯微云的图标也改到底部去,剩下svn和onedrive的图标就可以正常显示了。

系统默认只显示11个图标位置,在注册表可以调整顺序,从上到下的顺序优先:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers]

虚拟机LVM磁盘扩容

虚拟机主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多站点建站平台,用户上传的文件量很大,加上备份本地文件,最近几天导致服务器空间为0,不能上传文件,准备扩容磁盘来增加空间。

一、增加虚拟机空间配置

1.删除虚拟机系统快照,有快照的虚拟机是不能调整磁盘大小的。

2.在EXSI主机下,选中虚拟机,右键编辑设置,打开虚拟机属性设置,调整磁盘大小。

3.重新启动虚拟机,进入查看新的硬盘情况:

#fdisk –l

二、调整虚拟机磁盘LVM

1.查看现有的硬盘分区(现在空间没有变大)

#df -h

2.对新增的硬盘空间做新增分区(硬盘数没有增加,增加的是空间)

#fdisk /dev/sda

The number of cylinders for this disk is set to 7832.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n 说明:新增分区

Command action

e   extended

p   primary partition (1-4)

p 说明:主分区类型

Partition number (1-4): 3 说明:新增分区号(1,2默认已经用了)

First cylinder (2611-7832, default 2611): <回车> 说明:默认回车(最小值)

Using default value 2611

Last cylinder or +size or +sizeM or +sizeK (2611-7832, default 7832): <回车>

说明:默认回车(最大值)

Using default value 7832

Command (m for help): t 说明:修改分区类型

Partition number (1-4): 3 说明:修改分区类型对应的分区号

Hex code (type L to list codes): 8e 说明:8e是lvm磁盘类型

Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): p 说明:打印分区表

Disk /dev/sda: 64.4 GB, 64424509440 bytes

255 heads, 63 sectors/track, 7832 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        2610    20860402+  8e  Linux LVM

/dev/sda3            2611        7832    41945715   8e  Linux LVM

Command (m for help): w 说明:保存退出

The partition table has been altered!

3.重启系统

#reboot

4.查看硬盘情况

#fdisk –l

说明:核对刚才所做的分区操作是否保存成功

5.查看当前分区的类型

#df -T /dev/sda1

说明:查看当前的主分区类型

6.创建文件系统在新的磁盘上

#mkfs.ext4 /dev/sda3

说明:ext4为你查看到的文件系统类型(ext2、ext3、ext4等)

7.创建PV(pv组成vg,vg组成lv)

#pvcreate /dev/sda3

查看pv状态

#pvdisplay

查看vg状态

#vgdisplay

8.刚创建的PV加入相应的VG

#vgextend vg_centos /dev/sda3

说明:vg_centos是我的服务器vg名称,请通过查看vg状态得到名称VG name

9.查看LV状态,把VG加入到LV

#lvdisplay

10.扩展LV大小

#lvextend -l +2559 /dev/VolGroup00/LogVol00

说明:2559为上面pvdisplay查看到的free的PE数量

11.用 resize2fs 调整文件系统大小

#resize2fs /dev/mapper/VolGroup00-LogVol00