将当前用户加入docker组,以当前用户执行docker命令时不需要sudo,加入docker组后拥有了访问docker的Unix socket权限。
cat /etc/group | grep docker #查看系统是否有docker用户组 groupadd docker #如果没有,添加docker用户组 gpasswd -a $USER docker #将登录用户加入到docker用户组中 newgrp docker #更新用户组
参考链接:解决非root用户没有权限运行docker命令的问题
用ufw allow port开放端口,ufw enable启用防火墙,ufw status查看防火墙的状态和开放的端口,如果sshd服务端口在启动防火墙后没有开启,不要退出当前会话,记得allow sshd的服务端口,最后reload防火墙。
获知服务器正在活动的开放端口:netstat -aptn
参考链接:ubuntu下开启端口
设置flask run的ip是0.0.0.0,不仅仅是127.0.0.1。
参考链接:What does “app.run(host='0.0.0.0') ” mean in Flask
import subprocess cmd = 'ps -aux | grep python' process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) err,output = process.communicate() retcode = process.poll() if retcode == 0: print(output)
一旦构建完成Popen对象,shell命令当即开始执行,communicate函数阻塞式地获取Popen对象的输出内容,尚不清楚停止阻塞的条件,poll函数获取Popen对象的运行状态。单线程的情况下,先执行communicate函数阻塞式地令调用程序等待被调用shell命令执行结束,然后poll函数获取执行结束的状态。
shell程序从文件中读取仓库名,根据目录中是否有同名文件夹克隆或更新git仓库,在windows系统下由于文本文件换行符是CRLF方式,即“\r\n”,read去掉了“\n”,但还有一个“\r”字符,意即在字符流开头重新打印,覆盖已有的内容,所以需要用${var%?}删除仓库名字符串后面与?最短匹配的字符串,即删掉回车符,而linux系统下只有一个“\n”字符,read掉不需要删除掉最后一个字符。
port=12345
ip=1.1.1.1
while read line
do
line=${line%?} # 如果在Windows系统下运行,保留该行;Ubuntu系统下运行这个脚本注释掉该行
if [ ! -d $line ]; then
git clone ssh://git@$ip:$port/home/gitrepo/${line}.git
echo ${line}仓库克隆完成
else
cd $line
git pull
cd ..
echo ${line}仓库更新完成
fi
done < gitrepo_names.txt
注意gitrepo_names.txt每个仓库名后需要有一个换行符,尤其是最后一个仓库名后面,这样shell脚本中能read到所有仓库名。
本文创建于2021年7月7日14点10分,修改于2021年10月18日14点26分