我正在使用以下命令:
\cp -uf /home/ftpuser1/public_html/ftparea/*.jpg /home/ftpuser2/public_html/ftparea/
Run Code Online (Sandbox Code Playgroud)
我收到错误:
-bash: /bin/cp: Argument list too long
Run Code Online (Sandbox Code Playgroud)
我也试过:
ls /home/ftpuser1/public_html/ftparea/*.jpg | xargs -I {} cp -uf {} /home/ftpuser2/public_html/ftparea/
Run Code Online (Sandbox Code Playgroud)
还是有 -bash: /bin/ls: 参数列表太长
有任何想法吗?
我正在自动化部署过程,我希望能够在我的机器上调用一个 .sh 文件,让它完成我的构建并将 .zip 上传到服务器,然后在服务器上做一些事情。我需要做的一件事要求我是 root。所以,我想做的是:
ssh user@172.1.1.101 <<END_SCRIPT
su -
#password... somehow...
#stop jboss
service server_instance stop
#a bunch of stuff here
#all done!
exit
END_SCRIPT
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
您知道这种情况:您正在输入一条长命令(例如提交消息)的一半,并意识到您忘记执行一些无法添加的先决条件命令&&。通常,当我遇到这种情况时,我会选择我用鼠标键入的内容,将其复制到剪贴板,按 Ctrl-U 清除该行,运行我的先决条件命令并从剪贴板粘贴。但也许有更好的方法,最好不需要使用鼠标?我正在寻找 bash 和/或 zsh 的解决方案。
我正在为某些任务构建 Bash 脚本。其中一项任务是从同一个 bash 脚本中创建一个 MySQL 数据库。我现在正在做的是创建两个变量:一个用于存储用户名,另一个用于存储密码。这是我的脚本的相关部分:
MYSQL_USER=root
MYSQL_PASS=mypass_goes_here
touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql
mysql --user=$MYSQL_USER --password="$MYSQL_PASS" < /tmp/script.sql
rm -rf /tmp/script.sql
Run Code Online (Sandbox Code Playgroud)
但是总是收到一个错误,说没有密码的用户 root 访问被拒绝,我做错了什么?我需要为 PostgreSQL 做同样的事情。
CentOS
有没有一种简单的方法可以从数据流中转换 HTML 特殊实体?我将数据传递给 bash 脚本,有时该数据包含特殊实体。例如:
“测试”& 测试 $ 测试!测试@#$%^& *
我不确定为什么有些字符显示正常而其他字符显示不正常,但不幸的是,我无法控制传入的数据。
我想我可以在这里使用 SED,但这似乎很麻烦,并且可能容易出现误报。是否有我可以通过管道传输的 Linux 命令专门用于解码此类数据?
我正在尝试编写一个脚本来在大量机器上启用 IPMI,而无需将 KVM 一一连接到它们。是否可以从 Linux 更改 BIOS 设置?操作系统是SL6。
我知道每台机器都可能需要重新通电,但我当然可以通过编程来做到这一点。
如果出现问题,我需要我的脚本给管理员发送电子邮件,而该公司只使用 Gmail。按照一些帖子说明,我能够使用 .mailrc 文件设置 mailx。首先是 nss-config-dir 的错误,我通过从 firefox 目录复制一些 .db 文件解决了这个问题。到 ./certs 并在 mailrc 中瞄准它。发了一封邮件。
但是,出现了上面的错误。奇迹般地,.db 中有一个 Google 证书。它出现了这个命令:
~]$ certutil -L -d certs
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
GeoTrust SSL CA ,,
VeriSign Class 3 Secure Server CA - G3 ,,
Microsoft Internet Authority ,,
VeriSign Class 3 Extended Validation SSL CA ,,
Akamai Subordinate CA 3 ,,
MSIT Machine Auth CA 2 ,,
Google Internet Authority ,,
Run Code Online (Sandbox Code Playgroud)
最有可能的是,它可以被忽略,因为邮件无论如何都可以工作。最后,在拉了一些头发和许多谷歌之后,我找到了如何摆脱烦恼。
首先,将现有证书导出到 ASSCII 文件:
~]$ certutil -L -n 'Google Internet Authority' …Run Code Online (Sandbox Code Playgroud) 我正在为 ldap 制作备份脚本。我希望错误转到 /var/log 中的文件,并将输出转到备份文件夹中的另一个文件。目前我正在重定向到一个临时文件,然后将临时文件发送到日志。不过,我宁愿将其作为 1 个班轮使用...
/usr/bin/ldapsearch -x -LLL -b "dc=contoso,dc=com" "(objectclass=*)" -h ldap.server -v 2>>/tmp/ldaptmp.err |
gzip -c > /mnt/backups/ldap/`date +\%Y\%m\%d`.ldif.gz ||
logger -t ldapbackup -p local6.err error exit $?
cat /tmp/ldaptmp.err | grep -v "ldap_initialize( ldap://ldap.server )" |
grep -v "filter: (objectclass=\*)" |
grep -v "requesting: All userApplication attributes" >$ERR_LOG
rm -f /tmp/ldaptmp.err
Run Code Online (Sandbox Code Playgroud)
关于如何将 stderr 和 stdout 重定向到不同管道以将此命令压缩为 1 行的任何想法?或者,还有更好的方法?
的行为dig +short是在运行不返回任何答案的查询时不返回任何内容(空)(与超时无关,只是一个明确的空答案)。
单独运行查询是可以的,但是结合一个-f参数运行一批查询时,就惨了!
dig +short -f queries.txt
queries.txt:
A somedomain.com
TXT otherdomain.com
A somedomain.com
现在,如果 DNS 服务器没有为 TXT otherdomain.com 返回任何内容(即 ANSWER: 0),而不是超时或其他内容,那么上述 dig 命令的输出将类似于:
dig +short -f queries.txt
1.2.3.4
1.2.3.4
即,只有两行。不适用于“粘贴”和其他类似命令。您不能再合并 query.txt 的输出和 dig 的生产输出。
这里可以做任何优雅的事情吗?
如何从 bash 中杀死除一个 python 脚本之外的所有 python 进程。(我知道它的名字,但它的 pid 有时可以改变)。
我需要一种pkill -f "python"但不包括python特定脚本。
请指教。