我在使用crontab,比如:
00 */1 * * * wget http://www.test.com/cron/archieve
我想知道在命令末尾使用>/dev/null 2>&1的区别,以及是否建议使用它。如果结果对您不重要,您可以在>/dev/null 2>&1中重定向stdio/stderr流。请参见一些示例:
alex@work:~/dev$ ls
arm-2011.03-42-arm-none-eabi.bin linux
backup_from_ak
如何使用awk或其他linux程序指定文本限定符?
我的数据如下所示:
它实际上是选项卡分隔的,但有些字段内部有一个选项卡。字段用双引号限定
如何指定字段不仅由制表符分隔,而且由引号分隔
以下是我目前的脚本:
awk '{OF=OFS="\t"}{print $1,$7,$8,$10,$11,$21}' cyme.txt | grep -i pilates
此外,出于实际目的,我还提供了一份数据样本的完美文本副本:
"723721093013" "AFL" "1" "" "15"
下面是Makefile的规则-
子曲面=foo-bar-baz
subdirs:
for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir; \
done
其中包含选项-C。有人能告诉我这个选项的功能是什么吗
谢谢 你检查过手册页上的make了吗?这并不简单,因为如果你写ManMake文件,除了ManMake之外没有任何附加内容会让你大开眼界。甚至,make-help?谢谢你提供的信息。现在更清楚了,我
我想从一些IP摄像头捕获RTSP流,环顾四周后,我发现了两个很好的工具:avconv和openRTSP
openRTSP -u user password rtsp://10.48.34.125/axis-media/media.amp
avconv -i "rtsp://user:password@10.48.34.125/axis-media/media.amp" -vcodec copy -f mp4 10.48.34.125.mp4
但出于某些巫毒的原因,当我需要使用没有特定扩展名的U
有没有办法使用GPU从50个或更多JPG文件中创建GIF动画?相当大的文件
目前,从24幅JPG图像中创建GIF需要大约15秒,并使用ImageMagick寻找更快的解决方案
谢谢 这并不是你想要的,但你可以尝试使用gifsicle而不是imagemagick。它应该可以更快地创建GIF。您知道Lempel–Ziv–Welch编码算法吗?也许它是用来编码里面的图像。
我是一个快乐的人,直到我偶然在Mac Os X Yosemite 10.10.5中执行了以下命令:
$ sudo chown -R my.user:staff usr/
然后,可怕的是,当我尝试使用sudo时,出现了一个可怕的错误:
$ sudo su -
sudo: effective uid is not 0, is sudo installed setuid root?
有人知道如何解决这些问题,拯救我的生命吗
Obs:我无法打开新的终端,但我仍然打开了两个终端,一个用my.user登
我有一个复杂的命令要通过ssh传递给远程服务器。我试图解压缩一个文件,然后在第二个ssh命令中更改其命名结构和扩展名。我的命令是:
ssh root@server1 "gzip -d /tmp/file.out-20171119.gz; echo file* | awk -F'[.-]' '{print $1$3".log"}'"
很明显,print语句的.log部分让我失望。我的想法是从文件名中去掉.out部分,并以file20171119.log作为结束结果。我只是对语法或如何正确转义有点
我正在尝试使用编辑docker容器中的一些文件
docker exec-it容器\u Id bash
我可以访问命令行和文件,但无法以root用户身份登录
用户。我尝试了所有这些命令:
root@Linux-Vostro-3250:~# docker exec -it MS1 bash
[oracle@b1c48eff3e2e base_domain]$ yum install nano
Loaded plugins: ovl
ovl: Error while doing RPMdb copy-
需要使用xxd命令(或任何其他合适的工作方法)将十六进制转储文件转换为二进制数据。未经处理的hexdump不是用xxd生产的。
尝试了两种具有不同选项的变体:
xxd -r input.log binout.bin
xxd -r -p input.log binout.bin
两种方法都会产生错误的结果:第一个命令创建二进制文件大小为2.2GB,第二个命令生成二进制文件大小为82382字节,两个二进制文件大小不匹配,预期的二进制文件大小为65536字节
十六进制文件的一部分:
807e0000
我正在尝试在文件中的一行下面插入以下行:
<Test>
<Document>
ThisIsATest
<Document>
</Test>
困难的部分是,我似乎不能用斜杠来处理多行项目。有什么办法吗?我不必使用sed或awk;任何其他Linux实用程序也可以 您可以使用sed的r->读取文件
将多行替换文本保存在一个文件中,例如xml.txt,只需执行以下操作:
sed -i '/test/r xml.txt' file
您将得
我在shell脚本中遇到一个[:缺少“]”错误
memuse=$ free -m
if [ $memuse >80]
then
echo "Attention: memory utilisation is high o
我试图理解在动态加载库的情况下如何解析符号。我观察到库的符号是使用链接为库的动态依赖项的libs来解析的。可以使用-ldd列出相同的内容
这是正确的吗
前面我假设加载程序将查看LD_LIBRARY_路径,并查看所有库以解析库中的符号。
但现在我想了想,然后我就能明白为什么不使用这种方法。原因是,如果加载程序必须查看LD_LIBRARY_路径中列出的目录下的所有库,那么它将以非常优化的方式解析符号。如果目录中有一百万个文件,那么它会非常慢,因为任何文件都可能有符号。加载程序基本上是按照加载的顺序扫
标签: Linux
intelcpu-architecturetemperaturelm-sensors
我试图用CPU核心温度做一些数据科学。我需要监控CPU核心温度随时间的变化。我尝试使用两种工具来完成此操作:
用于测量堆芯和封装温度的lm传感器
产生荷载的应力
我所看到的问题是,一旦压力开始,温度就会飙升,一旦压力停止,温度就会直线下降。这不可能是对的
下面是一个小shell脚本和输出,用于演示问题:
脚本:
sensors | grep Core
stress -c 8 -t 1
sensors | grep Core
str=$'Sleeping for 1s \n'
read -t 1
我基本上想要rsync,但没有能够安装它的奢侈
但我需要一种将文件从一台服务器部署到另一台服务器的方法。我在一台服务器上编辑一个或多个文件,然后需要通过比较不同的文件(并能够排除.htaccess文件)将所有修改的文件复制到另一台服务器
有人知道一种简单的方法吗
谢谢,
Scott如果您有权在一台服务器上安装rsync,这就是您所需要的最低限度
如果没有,问题是您目前有哪些可用的工具?scp?sftp?ftp?嘘?电信网?找到了吗 (我假设您对这两台服务器都有shell访问权限)
您不需要在系统
我不熟悉linux和bash,所以我不知道我做错了什么。我将grub设置为不显示,并在按下shift键3秒钟后显示。这很有效。然后,我将30_os-prober中的行(如下面所示)更改为“F11”,正如我在这里读到的:(13.3.33)。现在,当我按下F11键时,什么都没有发生,当我按下shift键时,我可以看到“Grub正在加载”,然后默认操作系统(Ubuntu)加载,而不显示Grub菜单
这是我的/etc/default/grub内容的一部分:
# If you change this fi
对不起,我英语不好
我无意中替换了named.conf
有没有办法再次查看配置
named将继续运行而不重新启动
给我看一些像正在运行的配置
多谢大家
另外,我试图恢复该文件,但它没有被删除。除非你有某种备份,否则你会倒霉的。虽然您可能会从rndc获得一些模糊的详细信息,但您永远无法恢复实际的文件…您可能会为此而刷新磁盘
我通常会在我接触的所有配置文件中添加相同的注释。差不多
## (pablo) /etc/inputrc
...
## eof
如果我删除/etc/inputrc,我可以通过以
我使用Python有一段时间了,我了解到通过一些方法,比如timeit,我可以估计程序的运行时间
但是,当我的程序在终端上完成时,它还会打印出运行时间吗?!任何终端命令都可以这么做 时间命令正是这样做的。使用以下命令:
$time您的_程序
输出为:
$time sleep 1
实0m1.002s
用户0.000s
系统0m0.000s
显示在内核和用户空间中花费的时间以及花费的总时间
因此,我正试图从数百个不同的日志文件中自动化一个相当繁琐的数据收集过程。以下脚本:
awk'/Loop/{printf$4,}'log*弱*“$factor”x
将搜索显示“循环时间$time”的行并打印时间
不过,我现在要处理的情况是,出现了运行时错误,并且从未写入日志。也就是说,日志文件在那里,但其中没有文本。问题是上面的脚本只会跳过日志。我希望它输出一个空格字符(以便更容易地对齐由所有这些字符创建的csv)
那么,有没有一种方法可以在/Loop/匹配时打印$4(时间),但在不匹配时打印“,
在从不同的客户端端口接收消息时,UDP套接字端口绑定有问题。
我正在编译一个C++实用程序来检查Linux服务器的20K端口。
我通过pthread_create创建客户端线程来发送服务器的不同端口。
在服务器端,我必须将套接字绑定到某个端口,所以它只能从select接收,比如阻塞的IOonly 1端口。
你能给我一些关于UDP服务器从不同端口接收消息的建议吗?如果你想在多个端口接收数据包,您必须打开多个套接字并使用类似select的方法多路传输I/O。Berkeley sockets API不
代码是从Windows系统开发的,当我在Linux系统中通过命令编译CUDA代码时:
nvcc lbm.cu -I/usr/local/cuda_sdk/CUDALibraries/common/inc -lm
编译器输出为:
In file included from lbm.cu:15:
lbm_kernel.h:52:8: warning: extra tokens at end of #endif directive
In file included from lbm.cu:15:
l
我这里有一个脚本,我试图转换为使用键,但我有一些问题。当没有为密钥指定密码短语时,脚本工作得很好,但是我希望每个服务器上的每个密钥都有一个不同的密码短语。然而,我在使用expect命令完成这项任务时遇到了一些问题。我复制了下面的原始脚本。如有任何建议,我们将不胜感激
#/bin/bash
SERVERS=“REMOTESERVER1 REMOTESERVER2”
KEYS=“SECRET\u KEY1 SECRET\u KEY2”
MAILTO=“EMAIL\u TO”
HOSTNAME=“$(
我已使用串行电缆将串行控制台端口连接到我的计算机上(如果有区别的话,请不要串行连接到usb)。当我通过这里描述的标准引导过程->我到了最后,但我无法输入命令
我正在运行Ubuntu12.04并使用minicom(尽管我在windows上尝试过screen和cu以及putty)
程序:
我运行minicom-s(我以root身份而不是root身份尝试过)
我配置连接,以便minicom将:
look in /dev/ttyS0
run at a speed of 115200 8N1
has no
我有一个程序在这种情况下,它的omxplayer播放mp4文件刚刚好。但当我要求它播放一个实际上是硬链接的文件时,它拒绝了
OriginalFile.mp4=播放效果良好
cp OriginalFile.mp4/folder/OriginalFile.mp4=播放正常
cp-al OriginalFile.mp4/folder/OriginalFile.mp4=拒绝播放硬链接
Omxplayer只给出了错误:线程nextrader 0x36af00 0线程已打开0x36af00 0 openok
我试图找到目录,归档它们,然后删除打包的归档
我使用以下命令:
find $DIRECTORY -maxdepth 1 -type d -name "`date --date="$i month ago" +%m`" -not -name \*.bz2 -print -exec tar --remove-files -cvjf {}.tar.bz2 {} \;
它在tar(gnutar)1.23上运行得非常好,输入目录正在被删除。当我在tar(gnutar)1.15.1上运行它时,会出现奇怪的
我使用的是Red Hat Linux服务器。使用sendmail发送电子邮件时,如何更改电子邮件客户端中显示的名称
现在我只看到电子邮件地址。user@domain.com. 我想显示Firstname Lastname。我如何配置它
我尝试指定-从Firstname Lastname开始,但在接收邮件时,我在电子邮件客户端看到的是:
Firstname Lastname@domain.com
请提供帮助。您是否尝试使用/etc/passwd或usermod命令更改发件人的用户名
试试看您检查过
我正在使用Linux rhel6 2.6.32-220.el6.x86_64#1 SMP Wed 11月9日08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
我可以从8080端口的浏览器访问tomcat。我正试着弄清楚这件事
我尝试了所有的刷新命令,但无法刷新PID
lsof-i:8080
无输出
netstat-tulpn | grep:8080
无输出
此外,没有日志,也没有运行任何httpd进程
请帮我找到这个。提前感谢tomcat应用程序使
我正在尝试使用sed从给定文件中删除字符串。要删除的字符串存储在password中。这是我的
sed-i“s/$password//g”shadowCopy.txt
它一直在告诉我
sed:-e表达式#1,字符0:没有以前的正则表达式
我知道它在为指定的正则表达式指定的空白处向我大喊大叫,但我不想用任何东西代替它。很多人在网上寻找,这说明我正在按我应该的方式去做。猜猜看
我也试过blank=“
sed-i“s/$password/$blank/g”shadowCopy.txt这会给我同样的错误。
我在Red Hat Linux上使用Matlab R2014b,它有一个函数,可以创建图像文件,然后使用sendmail命令将它们通过电子邮件发送到一个小的帐户列表。我可以从Matlab命令窗口使用该功能,发送电子邮件等等。但在CLI中,它会创建所有文件,但在发送时会阻塞。它在无法连接到我的smtp服务器后出现连接超时错误。我的最终目标是从crontab运行这个。为什么sendmail命令可以在命令窗口中工作,而不能在命令行中工作
我的CLI命令如下所示:
matlab -nosplash -r
在浏览一个程序的不同部分时,我对谁创建了这些部分有些怀疑。
我的理解是,汇编程序在创建汇编代码时创建不同的段,而当加载到虚拟内存中时,加载程序为所有段创建虚拟地址空间,并将它们存储在虚拟内存中
请帮助我理解它 是的,汇编程序生成各个段,但您可以在代码中使用标签指定它们,例如.data指令告诉汇编程序我们已经到达了数据段。编译器将程序的可执行语句转换为CPU指令,静态数据的声明被转换为特定于机器的数据规范。要创建可执行文件,系统链接器将指令和数据聚合为不同的段。所有指令都进入传统上称为文本的一段。
我正在尝试显示我创建的流程的顶级页面表
如何在Linux中编写的模块中获取进程的页表内容
我在64位Intel架构的Windows8主机上使用Ubuntu14.04LTS虚拟机 尽管我不知道你问题的确切答案,我一直在寻找相同的答案。我的研究总结如下:
您应该查阅包含指向内存描述符mm_结构的链接的进程描述符。如果您检查内存描述符,它包含进程如何使用内存的非常好的信息。我认为对于您的问题,请检查pgd,它是指向进程的全局页面目录的指针。
希望您编写的模块是一个虚拟化驱动程序,如果是这样的话,那么还
我已经编写了一个小脚本,它正在添加一个新的装入点,不幸的是,当将完整路径作为字符串传递给grep函数时,它得到的是整个字符串,只是其中的一小部分。
以下是脚本的相关部分:
DIR_TO_CREATE="/ODV"
MOUNT_POINT="ta1bbn01:/SwDrop/Repository/ODV $DIR_TO_CREATE nfs rw,hard,async,noatime,nodiratime,intr,bg,tcp, vers=3,rsize=32768,wsize
我从STO中找到了更纤细的帖子,但这些帖子没有过滤扩展名为的文件。再写一次
我正在编写一个shell脚本来保存目录中最新的3.txt文件,并希望删除所有其他的.txt文件
例如。。。在目录Home中,我有以下文件
test.txt
my.txt
image.jpg
test.avi
sample.txt
country.txt
study.txt
当我运行linux脚本时,输出应该如下所示
保留文件仅保留最后的3.txt文件
test.txt
my.txt
image.jpg
test.avi
我正在尝试连接到AWS ec2实例,但一直被拒绝。
我使用的是同一台计算机,同一个wifi,但当我连接到我的一个ec2实例时,它突然出现故障
当我连接时,它会说
ssh -i successintoeflcom.pem ec2-user@52.68.152.179
ssh: connect to host 52.68.152.179 port 22: Connection refused
ssh -v successintoeflcom.pem ec2-user@52.68.152.179
O
我是linux屏幕工具的新手,现在我必须创建很多屏幕,并向每个屏幕传递一些命令。如何以编程方式实现这一点,而不是使用Ctrl+a c创建每个屏幕并在屏幕上键入命令?使用tmux,tmux具有更现代的API,并且在大多数情况下易于使用。要使用tmux实现您的目标,您需要:
$ tmux new-session -s foo -d # create a new session called foo
$ tmux new-window -t foo
我已经为静态IP配置了Raspberry Pi。我的/etc/network/interfaces如下所示:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
然而,出
大家都怎么了?我在我的Linux操作系统类中有这个任务,我有点麻烦。它要求我
编写一个名为chkread的bashshell脚本,该脚本接受无限数量的
所有参数都表示文件名
到目前为止,我已经想到了这个,但我不认为这正是教授想要的
~$ cat MY_SCRIPT
#!/bin/bash
echo ${unlimited arguments}
~$ bash MY_SCRIPT cat dog horse
cat dog horse
您可以使用类似的方法来处理bash脚本中的多个参数
#!/b
我一直在操作一个tar文件,我想在提取它之前测试一个文件是否存在
假设我有一个名为Archive.tar的tar文件,输入
tar -tvf Archive.Tar
我得到:
-rwxrwxrwx guy/root 1502 2013-10-02 20:43 Directory/File
-rwxrwxrwx guy/root 494 2013-10-02 20:43 Dir/SubDir/Text
drwxrwxrwx guy/root
我桌上有一个硬件开发工具包,通过USB连接到我的Windows笔记本电脑。开发工具包允许您通过USB闪存芯片。我想使用usbip将此设备公开给我的服务器环境
在我的Windows PC上,我使用USBIP服务器运行virtualbox。我已经绑定了硬件开发工具包。服务器正在侦听端口3240,该端口由虚拟盒转发到主机笔记本电脑端口7023
我使用SSH登录到我的服务器。我已经设置了一个SSH远程隧道,这样服务器上的端口3240将向笔记本电脑上的端口7023发送请求
总结
USBIP服务器端口324
我在Linux上通过调用脚本运行SSH,该脚本在执行时移动到后台
SSH命令在远程win 10服务器上执行批处理命令。调用脚本中的语法为:chkval=$SSH domain\remotehost cmd arg2 arg2
只要我在前台运行脚本,就可以从命令行或调用脚本进行操作,但只要我将脚本放在后台或将其交给at进行调度执行,SSH命令就会失败,并出现更多令牌
脚本不会死掉,SSH调用也不会死掉,但它永远不会执行远程命令。Yo可以使用-N-f标志来执行。
从男人那里
-f:
在命令执行之前请
我想执行一个命令,并想重定向stderr和stdout,如下所示:
在保持订单的同时,stderr和stdout->应仅写入logs.log文件
stderr->应打印到屏幕上,并写入errors.log
到目前为止,我可以将它们重定向到screen和log.txt文件,如下所示:
command 2>&1 | tee logs.log
# eat our initialization time *before* we start the background process
s
标签: Linux
redhatwindows-server-2012pynotifynotify-send
我正在windows服务器上使用putty登录到远程服务器。我需要监视远程linux设备上的一些作业。我需要一些脚本或二进制文件,当远程服务器上的作业失败时,这些脚本或二进制文件将在windows server/pc上向我发送通知
通知发送在那里不起作用。我正在使用redhat linux 您可以在Linux机器中设置一个cron作业,如果出现任何故障或需要任何详细信息,它将向您发送邮件。例如,我使用此服务监视转储复制过程
此脚本将进行备份,完成后在邮件中通知我
#!/bin/bash
date
我目前正在一台Linux机器上工作,我想知道是否有一个命令可以告诉您实际机器上有多少硬盘驱动器插槽,而不管是否安装了硬盘驱动器。我知道阅读机器手册会提供这些信息,但有没有办法通过命令行获取这些信息
我尝试过lshw和dmidecode命令,但它们不提供插槽信息。此特定机器有6个插槽,用于安装当前仅占用3个的硬盘驱动器。它也没有硬件raid,因此我无法使用megacli
如有任何帮助,将不胜感激。应列出所有阻塞设备。如果只需要物理磁盘,可以使用lsblk-d
例如:
lsblk -o name,s
我把这些文件放在一个目录里
我想更改其他人具有执行权限的文件的权限。以下是我要更改权限的文件:
如果我尝试使用此命令更改这些文件的权限:
ls -l | cut -d ' ' -f 1,9 | grep '\-\-\x' | xargs chmod o+t
我有一个错误:
chmod:无效模式“-rw-r-S--x,-rw-r-S--x”
为什么我会犯这个错误?如何设置这些文件的粘性位?我做错了什么?xargs chmod只需要文件名,但您给它提供了ls-l的完整输出,因此它将现有模式解
在我使用shell的有限经验中,我不知道如何解决这个错误
提前谢谢
以下是例外情况:
[user@pc-name ~]$ source .vimrc
-bash: Configuration file for vim
set modelines=0 : command not found
-bash: Normally we use vim-extensions. If you want true vi-
compatibility
: command not f
我试图在Linux上运行nuget软件包附带的specflow.exe,但出现以下错误:
sashoalm@HP:~/.nuget/packages/specflow/2.4.1/tools$ dotnet specflow.exe
A fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/home/sashoalm/.n
我想创建一个别名或函数,通过名称的一部分查找分支并将其签出。它可以通过git branch | grep | xargs git checkout完成,但每次编写都很麻烦。我试着在下面写一个函数,但看起来即使是git分支部分也无法在其中工作
有没有关于如何做到这一点的建议
function grep_checkout {
local checkout_command="git branch | grep $1 | xargs git checkout"
echo
我正在尝试在AmazonLinuxEC2实例中安装suricata
我在编译时遇到以下错误
错误:进程未成功退出:rustc-vV退出代码:1
--stdout
rustc 1.35.0
二进制代码:rustc
提交哈希:未知
提交日期:未知
主机:x86_64-unknown-linux-gnu
发行版本:1.35.0
--斯特德尔
错误:无法加载codegen backend/usr/lib/rustlib/x86_64-unknown-linux-gnu/codegen backends/
我希望创建一个shell脚本,读取命令行参数,然后连接这些文件的内容并将其打印到stdout。这仅适用于文本文件
到目前为止,我已经创建了一个错误检查,以确保至少有一个参数,否则将打印错误。我已经知道如何获取当前目录中的文件并将它们连接到标准输出
#!/bin/bash
if [ $# -eq 0 ]; then
echo -e "Usage: concat FILE ...\nDescription: Concatenates
FILE(s) to standard output
我在shell中设置永久环境变量时遇到问题。比如说
HISTSIZE=0
export HISTSIZE
echo $HISTSIZE
变量将在shell中更改。但是,如果我打开另一个选项卡或关闭并重新打开shell,变量将恢复为其原始值1000
我还尝试使用~/.bash_profile中编写的脚本来获取变量。但它只在特定的shell中使用相同的变量问题。如何创建永久性更改?某些终端仿真器不以登录shell的形式运行新选项卡。例如,在Gnome终端中,您应该:
列表项
转到编辑->配置文件首
我是第一次在Centos使用Docker
在部署两个容器时,我发现我在internet上遇到了路由问题,然后我发现即使在默认的网桥网络上,我甚至无法使它们相互通信
在一个容器中,会发生以下情况:
/ip a | grep 172
inet 172.17.0.2/16 brd 172.17.255.255范围全局eth0
/平172.17.0.3
PING 172.17.0.3 172.2.0.3:56个数据字节
^C
--172.17.0.3平统计--
传输3个数据包,接收0个数据包,100%数