好的,所以在试图追踪第n次各种软件的依赖关系并复制各种人为所有不同的linux发行版做的工作后,我想知道是否有更好的方法来捆绑各种软件到.rpm或.deb文件中以便于分发.
我目前为此做的设置是各种工具的frankenstein怪物,但主要是Vagrant和libguestfs,它们是在Fedora中运行的源代码构建的,因为没有任何发行版实际发布它virt-diff.以下是我目前遵循的步骤:
.vmdk并调用它base-image..vmdk并调用它non-base-image.virt-diff差异比较两个图像和转储数据文件调用diff.diff到另一种格式,其中包含我需要的信息,没有任何废话,我不喜欢的东西/var.guestfish使用一堆copy-out命令生成脚本.guestfish脚本.diff因为guestfish无法执行此操作.我想知道是否有更好的方法来做到这一点.你认为会有,但我还没弄清楚.
我正在全新安装Linux Mint.
尝试从任何存储库推送时,我收到以下错误:
error: Malformed value for push.default: simple
error: Must be one of nothing, matching, tracking or current.
fatal: bad config file line 8 in /home/leng/.gitconfig
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我肯定有一个支持简单推送行为的版本.
输出git --version是git version 1.8.3.2.
内容~/.gitconfig:
[user]
name = My Name
email = MyEmail@website.com
[color]
ui = true
[push]
default = simple
Run Code Online (Sandbox Code Playgroud)
这是令人毛骨悚然的地方.
如果我改变行为matching(或nothing,tracking或者current,对于这个问题),然后尝试推,我得到完全相同的错误消息.怎么可能?是以某种方式缓存配置?我甚至尝试重启.我甚至尝试从系统中彻底清除GIT(并删除~/.gitconfig)然后重新安装它.
如果我[push]从.gitconfig文件中完全删除该部分(或者如果我完全删除该文件),那么尝试推送,然后我得到:
Git 2.0 from …Run Code Online (Sandbox Code Playgroud) 在shell脚本中,我们可以使用exec命令将默认输入更改为File,如下所示:
exec 1>outputfile
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在同一个脚本中将stdout描述符'1'恢复为默认值(终端).我们怎样才能做到这一点?
我知道这可能是一个愚蠢的问题,但我一直在寻找一段时间,但无法找到明确的答案.如果我使用mmap或malloc(在C中,在Linux机器上)任何一个在RAM中分配空间?例如,如果我有2GB的RAM并且想要使用所有可用的RAM,我可以使用malloc/memset组合mmap,或者是否有另一种我不知道的选项?
我想编写一系列可以同时运行的简单程序,并保持进程中使用的所有RAM强制使用交换,并且频繁地交换页面.我已经尝试过以下程序,但这并不是我想要的.它确实分配内存(RAM?),并强制使用交换(如果有足够的实例正在运行),但是当我调用时sleep不会只是锁定内存被使用(因此实际上没有任何内容与其他内容进行交换)过程?),或者我误解了什么.
例如,如果我运行了3次,那么我将使用前两个实例中的2GB(全部)RAM,然后第三个实例会将前两个实例中的一个(RAM)和当前实例交换到RAM中吗?或者实例#3是否只使用磁盘或虚拟内存运行?
这提出了另一点,我是否需要分配足够的内存来使用所有可用的虚拟内存以及要使用的交换分区?
最后,将mmap(或任何其他C函数.地狱,甚至是另一种语言,如果适用)更好地做到这一点?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MB(size) ( (size) * 1024 * 1024)
#define GB(size) ( (size) * 1024 * 1024 * 1024)
int main(){
char *p;
p = (char *)malloc(MB(512));
memset(p, 'T', MB(512));
printf(".5 GB allocated...\n");
char *q;
q = (char *)malloc(MB(512));
memset(q, 'T', MB(512));
printf("1 GB allocated...\n");
printf("Sleeping...\n");
sleep(300);
}
Run Code Online (Sandbox Code Playgroud)
**编辑:我正在为我的操作系统使用CentOS 6.4(带有3.6.0内核),如果这有帮助的话.
在Linux上我有一个文件,如下所示 .txt
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
第二个文件如下 .txt
1
2
3
6
Run Code Online (Sandbox Code Playgroud)
我想知道A.txt里面是什么,但不知道B.txt里面是什么,即它应该打印值4
我想在Linux上这样做.
在一个文本文件中,我有150个单词.我有另一个文本文件,大约有100,000行.
如何检查属于第一个文件的每个单词是否在第二个文件中?
我想过使用grep,但我无法找到如何用它来阅读原文中的每个单词.
有什么方法可以使用awk吗?或另一种解决方案
我试过这个shell脚本,但它几乎匹配每一行:
#!/usr/bin/env sh
cat words.txt | while read line; do
if grep -F "$FILENAME" text.txt
then
echo "Se encontró $line"
fi
done
Run Code Online (Sandbox Code Playgroud)
我发现的另一种方式是:
fgrep -w -o -f "words.txt" "text.txt"
Run Code Online (Sandbox Code Playgroud) 当我输入错误或在控制台中输入错误时,会出现以下消息:
Traceback (most recent call last):
File "/usr/lib/python3.3/site.py", line 629, in <module>
main()
File "/usr/lib/python3.3/site.py", line 614, in main
known_paths = addusersitepackages(known_paths)
File "/usr/lib/python3.3/site.py", line 284, in addusersitepackages
user_site = getusersitepackages()
File "/usr/lib/python3.3/site.py", line 260, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/lib/python3.3/site.py", line 250, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/lib/python3.3/sysconfig.py", line 610, in get_config_var
return get_config_vars().get(name)
File "/usr/lib/python3.3/sysconfig.py", line 560, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/usr/lib/python3.3/sysconfig.py", line 432, in _init_posix
from _sysconfigdata import build_time_vars …Run Code Online (Sandbox Code Playgroud) 我有一个Jenkins工作来停止节点应用程序,部署代码并启动应用程序.
使用Upstart脚本完成启动/停止.
我用 initctl stop node-App
如果作业正在运行,这很有效.但是如果应用程序已经死亡或处于停止状态,则输出为initctl: Unknown instance:
这会导致Jenkins作业失败,而不会继续执行后续步骤.
有没有办法在发出启动命令之前检查作业是否已启动?或者詹金斯有没有办法不考虑错误并且失败了?
我正在尝试编写一个bash脚本来查找正在运行的进程的PID然后发出kill命令.我有部分工作,但我面临的问题是可能有多个进程在运行.我想对找到的每个PID发出一个kill命令.
我认为我需要将每个PID放入一个数组中,但是如何做到这一点却不知所措.
到目前为止我所拥有的:
pid=$(ps -fe | grep '[p]rocess' | awk '{print $2}')
if [[ -n $pid ]]; then
echo $pid
#kill $pid
else
echo "Does not exist"
fi
Run Code Online (Sandbox Code Playgroud)
这将做什么是在一行返回所有PID,但我无法弄清楚如何将其拆分为数组.
我试图在我的共享Linux服务器上使用部署php脚本,使用他们的web-hooks功能从github.com获取一个私人仓库,这是第一次使用ssh.
本质上:每次我提交github web-hook发送一个post请求到我的php文件,我想用它来发出一个简单的git pull命令,从而保持我的服务器和github同步并意味着我有一个体面的工作流程,将帮助我停止在生产服务器上编辑内容.
我正在使用终端进行ssh连接.
我使用ssh去我的服务器并创建我的私人仓库的克隆,这很有用.
因此,我可以ssh到我的服务器并发出一个git pull完美的工作.但当然我想自动化这个过程.如果我可以让这个工作,我想对其他几个回购做同样的事情.
我已经关注创建密钥并将其添加到github.com上我的帐户部分的github指南,我可以看到密钥存在于我的主机上的/.ssh/文件夹中.私钥有chmod 600,公钥是644.我删除了这些,重新创建了新密钥,并在github上删除/重新添加了几次公钥.ssh keys
我目前有这些键:
1024 03:c4:16:45:40:77:a4:94:a4:... /home/username/.ssh/id_dsa (DSA)
2048 b3:62:87:e0:4b:39:aa:06:97... /home/username/.ssh/id_github (RSA)
Run Code Online (Sandbox Code Playgroud)
我有一个带有以下内容的/.ssh/config文件(希望github使用基于此SO答案的id_github密钥:
# Default GitHub
Host github_server
HostName github.com
user git
ForwardAgent yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github
Run Code Online (Sandbox Code Playgroud)
我已更新我的.git/config以将命令更改为 git@github_server:username/repo
我已经使用了将密钥复制到authorized_keys
cat id_github.pub >> authorized_keys
Run Code Online (Sandbox Code Playgroud)
但是当我提交时,我收到一封电子邮件说permissions denied (publickey)(我的php脚本会发送成功/失败的电子邮件,并且基于此回购:
这使用了一个简单git pull的shell_exec函数,我已添加2>&1到最后进行调试.
我将命令更改为(尝试为用户添加密钥)
`ssh-add …Run Code Online (Sandbox Code Playgroud)