查看当前目录下的图片数目
sudo find ./ -name *.jpg > count ; wc -l count;
此命令会在当前目录下生成一个count文件 里面有所有匹配的文件名记录
如果想要查看所有 的文件
sudo find ./ > count ; wc -l count;
查看当前目录下的图片数目
sudo find ./ -name *.jpg > count ; wc -l count;
此命令会在当前目录下生成一个count文件 里面有所有匹配的文件名记录
如果想要查看所有 的文件
sudo find ./ > count ; wc -l count;
写在前面,此文承接 在LINUX(CENTOS7.4)上搭建GIT服务器和配置GITOLITE权限管理 ,这里主要用shell脚本自动创建仓库,和自动部署网站目录:
例如上文提到的gitosis.conf中的project1的项目为例:
[group mobile]
writable = project1
members = test1 test2
此项目已经配好,才能如下操作
这里写了两个脚本先执行 aftergit.sh 再执行 hookgit.sh 执行之前先修改符合自己的配置
下面贴一下代码
aftergit.sh :
#!/bin/bash action=$1 gitDirRoot="/data/gits" Display_Menu() { echo "" echo "#####################################################" read -p "请输入仓库名称(0或exit直接退出): " action } echo "+-----------------------------------------------------------------------+" echo "| 创建git仓库,前提是gitosis-admin中本地有权限 |" echo "+-----------------------------------------------------------------------+" Display_Menu case "${action}" in 0|[eE][xX][iI][tT]) exit 1 ;; *) echo "创建项目:${action}" cd $gitDirRoot mkdir ${action} cd ${action} touch README git init git remote add origin git@localhost:${action}.git git add . git commit -am '初始化' git push origin master echo "创建成功" exit 0 ;; esac
下面是:hookgit.sh
#!/bin/bash #第一个参数来填写要配置的仓库名称 action=$1 #真实仓库的根目录 GITROOT="/home/git/repositories/" #web所有项目根目录 WEBROOT="/home/wwwroot/" Display_Menu() { echo "" echo "#####################################################" read -p "请输入仓库名称(0或exit直接退出): " action } echo "+-----------------------------------------------------------------------+" echo "| 此程序是git自动部署项目(目录依赖gitosis) |" echo "+-----------------------------------------------------------------------+" #初始化action Display_Menu case "${action}" in 0|[eE][xX][iI][tT]) exit 1 ;; *) echo "部署web项目:${WEBROOT}${action}" cd $WEBROOT git clone "git@127.0.0.1:${action}.git" chown git:git -R $action cd "${GITROOT}${action}.git/hooks/" cat >post-receive<&1 cd \$CURRETNPATH exit 0 EOF chmod +x post-receive exit 0 ;; esac
注意:cat中的\是为了不转义变量 打包好的文件 git
温馨提醒:如果上面的代码部署好之后,在运行的时候出现这种错误:
git.exe push –progress “origin” master:master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: HEAD 现在位于 af9cecc pro
remote:
remote: fatal: Could not read from remote repository.
remote:
remote: Please make sure you have the correct access rights
remote: and the repository exists.
To 192.168.0.181:project1.git
af9cecc..5a74a94 master -> master
成功 (750 ms @ 2018/12/24 10:10:45)
问题是你的git用户并没有生成ssh密钥和公钥,先生成一个,然后放入gitosis-admin的keydir并在gitosis.conf配置好权限。
并且你要在web项目目录下用git账号手动 git pull 会有一个提示
The authenticity of host ‘127.0.0.1 (127.0.0.1)’ can’t be established.
ECDSA key fingerprint is SHA256:K7ts/5QEaRsz8ksf1Cwul9ILHOw25yPZntZUE1jGWx4.
ECDSA key fingerprint is MD5:e4:a6:ad:ee:6c:77:44:76:17:3a:3f:a5:a0:13:e6:3f.
Are you sure you want to continue connecting (yes/no)?
输入yes并回车就可以了。(感觉不是很智能,不过以后就不用手动pull了)
生成密钥参考:LINUX实现SSH免密码登录
在VM的根目录下找到.vmx文件,在文件中查找(Ctrl+F快速查找)vmci0.present,此时会看到“vmci0.present = “TRUE””
1.修改为FALSE
2.删除以.lck为后缀名的文件,然后重新打开虚拟机
写在前面:网上出现了各种gitosis配置,总觉得不太完善。这里综合各种文档整理出来一个配置。目前centos7.4可用
一、Git服务端配置
1.安装git
yum install git -y
安装之后顺便配置一下用户信息
git config –global user.name “yourname”
git config –global user.email “your@email.com”
2.创建git用户,并运行git服务
adduser git
I.网上有人说git用户的shell为/usr/bin/git-shell为git用户的登陆shell
使用git-shell可以作为简单的使用,即创建一个仓库,让其他人连接上,这是可以的。
但是设置这个是无法使用gitolite,因为这个shell不支持普通的命令
II.修改git密码
passwd git
#两次输入你的密码
3.安装gitosis
I.gitosis依赖于某些python工具库,所以先安装python工具库
yum install python-setuptools -y
II.下载并安装gitosis
git clone https://github.com/tv42/gitosis.git
cd gitosis
III.安装 我的python版本是2.7.5
sudo python setup.py install
IV.上传管理员公钥到服务器,例如上传到/tmp/id_rsa.pub 初始化gitosis并添加管理员
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
V.权限 需要手工对该仓库中的 post-update 脚本加上可执行权限(我在实际中发现,权限已经是755了,这样的话可以跳过这一步)
sudo chmod 755 /home/git/gitosis-admin.git/hooks/post-update
VI.将gitosis-admin这个特殊的Git仓库克隆到本地中
git clone git@GITSERVER:gitosis-admin.git
其中 GITSERVER为你的服务器IP地址。不需要输入绝对路径,gitosis会自动帮助我们定位仓库基准地址。
这会得到一个名为 gitosis-admin 的工作目录,目录下包括 :
.git/
keydir/ 用户公钥目录
gitosis.conf gitosis配置,用来设置用户、仓库和权限的控制文件
如此就gitosis就安装配置成功了
4.添加新用户
– 将用户的公钥文件 keydir/USER.pub
– 添加他们的项目权限到gitosis.conf文件中
用户权限配置
gitosis.conf中分为三个对象:组、仓库、用户
组中的用户可以按照固定的读写规则访问组中的仓库
例如我们要给仓库project1配置两个组,一个可以读写,一个只读
用户test1,test2可以读写,test3只可以读,可以配置如下
[group mobile]
writable = project1
members = test1 test2
[group mobile_ro]
readonly = project1
members = test3
其中group代表一个组,writable是仓库名,members是此仓库的成员,可以有多个成员,用空格进行分割。
当然keydir要有三个pub文件 test1.pub test2.pub test3.pub
然后提交gitosis-admin项目
5.添加新仓库(*仓库名不要使用_下划线)
– 上面是添加用户并分权。现在是介绍添加新项目
在本地(代码仓库服务器)创建一个仓库,并push到git@localhost:project1.git,gitosis会在/home/git/repositories自动创建test.git这个仓库:
mkdir project1
cd project1
touch README
git init
git remote add origin git@localhost:project1.git
git add .
git commit -am ‘初始化’
git push origin master
此时,添加了权限的用户可以正常克隆代码了,例如:git clone git@192.168.0.181:project1.git
附录:创建公钥和私钥 git bash中 ssh-keygen 一路回车下去
参考另外一篇文章 LINUX实现SSH免密码登录
如果想要自动创建仓库并自动部署到web,参考文章:为GITOLITE自动创建仓库和自动部署网站
1. 直接在网络脚本目录中找
cd /etc/sysconfig/network-scripts/
ls
可以看到目录中有至少两个 ifcfg-xxx 文件,其中 ifcfg-enpxxx 是我们要找的网卡配置文件。
如果设备上有多个网卡的话,可能会有多个 ifcfg-enpxxx ,后面的 xxx 可能是不同的数字与字母组合,任意选择一个去配置就好了,在上图的情况下,我们要修改的网卡文件就是 ifcfg-enp2s0
2. 通过 ip 命令查找
ip addr show
这是查看 IP 地址的指令,相当于原来的 ifconfig 。
修改网卡配置
不管用哪个方法,都应该能得到网卡的名字 enpxxx ,以上图的 enp2s0 为例做修改:
vi /etc/sysconfig/network-scripts/ifcfg-enp2s0
动态的很好配置
ONBOOT=yes
BOOTPROTO=dhcp
静态的ip为
BOOTPROTO=none
IPADDR=192.168.1.100
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
其如果ping 外网不通,返回类似 unknown host 的字样,那说明还需要配置一下 DNS 地址。
vi /etc/resolv.conf
在文件末尾加入下面这一行内容:
nameserver 8.8.8.8
转载 https://www.aliyun.com/jiaocheng/137913.html