我希望,当 linux 用户从 shell 脚本退出时,它也会从 bash shell 中注销。这可能吗?
我们需要一个 shell 脚本来查找和替换 /home 文件夹中所有 index.php 文件中的一段注入代码
mysql -u root -pmysql;
SELECT TABLE_NAME AS "Table Name", table_rows AS "Quant of Rows", ROUND((data_length + index_length)/1024/1024,2) AS "Total Size Mb" FROM information_schema.TABLES WHERE information_schema.TABLES.table_schema='database_name';
Run Code Online (Sandbox Code Playgroud)
我想创建一个 shell 脚本,它将执行这些命令并返回结果。
我如何通过 shell 脚本运行这个命令?
使用无密码身份验证的 scp 工作正常,但如果删除源上的文件,它将不会被复制,即目标目录未完全替换为源。我可以看到新文件或修改被正确复制。
scp -r /user/local/img root@192.168.18.73:/user/local/img
Run Code Online (Sandbox Code Playgroud) 我想要一个 bash shell 脚本,我可以使用 cron 作业运行它来检查远程服务器上的 mysql 是否正在运行。如果是,则什么都不做,其他启动服务器。
cronjob 将每分钟检查远程服务器是否存在实时(或非)mysql。我可以自己编写 cron 作业,但我需要有关检查远程 mysql 是否启动或关闭的 shell 脚本的帮助。检查后的响应是向上还是向下并不重要。但是检查很重要。
谢谢你。
我有这个脚本,它可以工作,但输出没有压缩,所以它很大。我想把它压缩保存,但我不明白 shell 脚本,我不想把它搞砸。你能帮我把它压缩成这样:“.sql.zip”吗?
/usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database > $backup_path/$today/$mysql_database-`date +%H%M`.sql
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
我是 bash/shell 脚本方面的新手,我正在尝试从 mysql 数据库中远程选择并检查记录是否存在。基于响应会做一些事情。
这是我的命令
mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"
Run Code Online (Sandbox Code Playgroud)
当我直接在终端中运行此命令时,我得到了正确的响应。所以我试图把它放在这样的脚本中
#!/bin/bash
count=mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"
if [ $count -gt 0 ]
then
echo " greater that 0 "
else
echo " lower than 0 "
fi
Run Code Online (Sandbox Code Playgroud)
当我执行上面的脚本时,输出是
$ ./check.sh
./check.sh: 第 3 行: -u: 命令未找到
./check.sh: 第 5 行: [: -gt: 预期的一元运算符
低于 0
感谢您对此的任何帮助。谢谢。
我想在系统启动时使用systemd. 我试图通过添加上面的脚本来做到这一点。但服务没有启动。
我的启动服务
[Unit]
Description=Startup
[Service]
ExecStart=/usr/local/sbin/my-startup.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我的启动.sh
cd /var/www/test.com
nohup java -jar *.jar>test.out 2>test.err &
Run Code Online (Sandbox Code Playgroud)
但是服务器启动时应用程序没有启动。
? my-startup.service - Startup
Loaded: loaded (/etc/systemd/system/my-startup.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Wed 2018-12-12 16:22:52 +0530; 27s ago
Process: 650 ExecStart=/usr/local/sbin/my-startup.sh (code=exited, status=0/SUCCESS)
Main PID: 650 (code=exited, status=0/SUCCESS)
Dec 12 16:22:52 localhost.localdomain systemd[1]: Started Startup.
Dec 12 16:22:52 localhost.localdomain systemd[1]: Starting Startup...
Run Code Online (Sandbox Code Playgroud) 我创建了一个脚本来将二进制文件作为服务执行。但是该服务不会启动该服务,但是当我停止该服务时,它会显示多个 pid。
我正在使用 RHEL 7.Here 是完整的细节
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
Run Code Online (Sandbox Code Playgroud)
通常我们运行脚本如下 ./pipeline --config pipeline.conf
[Unit]
Description=Pipeline service
[Service]
Type=simple
User=cisco
ExecStart=/hfqp/bin/pipeline --config /hfqp/bin/pipeline.conf
Run Code Online (Sandbox Code Playgroud)
并且做了以下事情
systemctl daemon-reload
systemctl start pipeline.service
Run Code Online (Sandbox Code Playgroud)
即使这样也行不通。
这是错误日志
? pipeline.service - Pipeline service
Loaded: loaded (/etc/systemd/system/pipeline.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2019-04-16 06:29:34 GMT; 19s ago
Process: 10195 ExecStart=/home/cisco/bigmuddy-network-telemetry-pipeline/bin/executePipeline.sh --daemon (code=exited, status=1/FAILURE)
Main PID: 9962 (code=exited, …Run Code Online (Sandbox Code Playgroud) 我在尝试检查附加卷在格式化之前是否已格式化的脚本的一部分存在问题。
当使用 nvme 卷时未格式化卷时,此检查中使用的 grep 返回零。这是因为 file -s 的输出似乎是一长串字符:
Xs\333d8\374R\352if\253w}$\014\246E\034_I\275\304\2505!\3536U\336\252\274\252\323K\345\334\225;\356\0075T\350ru\003Kwp\353v:\326\263a\251\307\/\001Db\216
因此,grep 计数返回零并且脚本假定磁盘已经格式化,因为 if 语句假定如果计数为零,它必须已经被格式化。
当前检查是否为零的输出:
file -s /dev/nvme | grep -c ': data$'
我想知道我是否可以安全地使用 blkid 但检查以确保它大于零而不是零以确定卷是否已格式化:
blkid | grep -c /dev/nvme