更改存储目录
pnpm config set store-dir /
pnpm config set store-dir /
查看 SVN 用户
首先检出全部 SVN 用户列表:
svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > userinfo.txt
1、在你的系统中打开一个终端,使用以下命令查看已经安装的 Snap 软件包的列表。它显示了 Snap 软件包,比如 Firefox,软件商店,主题以及其它默认已经安装的核心软件包。
snap list
要求统计Gitlab所有项目的任何人提交代码行数
# http://gitlabr.cidana.com/
import os
from git import Repo
import requests
import subprocess
GITLAB_URL = 'http://gitlabr.c4a.com/'
GITLAB_TOKEN = 'hboA_yaibr3b2WwFahaQ'
GITLAB_CLONE_METHOD = 'ssh_url_to_repo' # http_url_to_repo ssh_url_to_repo
ssh_private_key = "./id_rsa"
merge_dict = {}
def get_gitlab_repositories():
url = f'{GITLAB_URL}/api/v4/projects?per_page=5'
headers = {
'Authorization': f'Bearer {GITLAB_TOKEN}',
}
response = requests.get(url, headers=headers)
response.raise_for_status()
repositories = []
for i in response.json():
repositories.append(i[GITLAB_CLONE_METHOD])
return repositories
def clone_repository(clone_url):
env = os.environ.copy()
env['PKEY'] = GITLAB_CLONE_METHOD
subprocess.run(['git', 'clone', '--no-checkout', clone_url], env=env)
def walk_dir():
# 获取当前目录下的所有Git仓库
repo_dirs = []
for d in os.listdir('.'):
if os.path.isdir(d) and '.git' in os.listdir(d):
repo_dirs.append(d)
return repo_dirs
def get_commit_lines(repo_path):
repo = Repo(repo_path)
commits = list(repo.iter_commits())
last_commit = commits[-1]
total_lines_added = last_commit.stats.total['lines']
return total_lines_added
def get_all_committers(repo_path):
repo = Repo(repo_path)
committers = set()
for commit in repo.iter_commits():
committers.add(commit.author.name)
return committers
def count_lines_per_committer(repo_path):
repo = Repo(repo_path)
committers = get_all_committers(repo_path)
lines_per_committer = {}
for committer in committers:
total_lines = 0
for commit in repo.iter_commits():
if commit.author.name == committer:
total_lines += commit.stats.total['lines']
lines_per_committer[committer] = total_lines
if committer in merge_dict:
merge_dict[committer] = merge_dict[committer] + total_lines
else:
merge_dict[committer] = total_lines
return lines_per_committer
def calc(repo_path):
lines_per_committer = count_lines_per_committer(repo_path)
return lines_per_committer
def main():
for i in walk_dir():
print(i)
print(calc(i))
print(dict(sorted(merge_dict.items(), key=lambda item: item[1], reverse=True)))
# repositories = get_gitlab_repositories()
# for repository in repositories:
# clone_repository(repository)
if __name__ == '__main__':
main()
在进行网络故障排查或者服务器性能优化的过程中,可能需要检测特定的 UDP 端口是否处于开放状态。本文记录了nc检测方法。
Netcat 是一个简单但强大的网络工具,它可以读取和写入 TCP 或 UDP 数据流。这里是如何使用 Netcat 来测试一个 UDP 端口是否打开的步骤
nc -lu 12345
sudo apt-get purge openjdk-* icedtea-* icedtea6-*
bypy 是一个基于 Python 的命令行工具,用于操作百度网盘(百度云),它为用户提供了丰富的命令行操作接口。bypy 适合在 Linux 服务器环境中使用,能够高效地进行大文件传输,支持多线程操作,具备上传、下载、同步等功能。
要在 Linux 系统中安装 bypy,可以通过 pip(Python 包管理器)来实现:
pip install bypy
RKE2 附带了多个 CLI 工具来帮助你访问和调试集群。启动时,它们会被提取到 /var/lib/rancher/rke2/bin
。
admin kubeconfig 在 /etc/rancher/rke2/rke2.yaml
处生成。
示例:
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
/var/lib/rancher/rke2/bin/kubectl get nodes
在研究 Ubuntu 的连接检查功能之前,让我们首先了解一下 Captive Portals。当尝试访问咖啡店、机场、商务中心、酒店大堂等处的 Wifi 设施时,我们发现自己登陆了一个要求身份验证、付款和/或接受协议条款的网页。只有当我们提供所需的信息时,我们才能访问 Wifi 设施。这种登录页面称为强制门户。
在 Ubuntu 17.10 及更高版本中,每当检测到强制门户时,您都会在网络状态中看到一个问号。这项新功能的工作原理是不时 ping http://connectivity-check.ubuntu.com URL,以检测强制门户。
为了更好的保证隐私,我将这个进行禁用。
创建云主机报错Exceeded maximum number of re tries. Exhausted all hosts available for retrying build,无法创建云主机
grep ERROR /var/log/neutron/server.log