小编sha*_*nuo的帖子

在 cron 中转义双引号和百分号 (%)

以下命令在提示符下工作,但不在 crontab 中工作。

 grep abc  /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com
Run Code Online (Sandbox Code Playgroud)

我需要将它添加到每日 cron 中。

cron

95
推荐指数
2
解决办法
4万
查看次数

在 shell 脚本中查找公共 IP 地址

我可以使用 ifconfig 或 hostname -i 命令找到我的 IP 地址。

但是我如何找到我的公共 IP?

(我有一个静态公共 IP,但我想使用 unix 命令找到它)

unix shell

44
推荐指数
7
解决办法
7万
查看次数

使用 scp 保留权限

即使与 -p 选项一起使用,SCP 似乎也不会保留所有权标记。

scp -p /mysql/serv/data_summary.* some_server:/mysql/test/
Run Code Online (Sandbox Code Playgroud)

这些文件归 mysql 所有,我希望在目标服务器上分配相同的所有权。由于一些管理问题,我需要在两台服务器上以 root 身份复制文件。我无法更改为 mysql@

cp scp

36
推荐指数
2
解决办法
9万
查看次数

时区更改后服务器重启

更改时间后是否需要重新启动服务器?当我更改日期时间并且没有重新启动 crond 时,我遇到了麻烦。

是否还有其他服务在时间更改后可能出现问题?

linux time timezone

11
推荐指数
1
解决办法
5089
查看次数

在 shell 脚本中使用 telnet

我使用 telnet 命令来检查 MySQL 端口是否正在响应。

telnet 10.10.10.24 3306
Run Code Online (Sandbox Code Playgroud)

我使用 ctrl 字符断开连接。这按预期工作。如何在 shell 脚本中使用此命令?

shell

10
推荐指数
3
解决办法
3万
查看次数

在 cron 中转义字符

以下在命令提示符下按预期工作。但它不适用于 cron。

mysqldumpslow <(tail -1000 `mysqladmin variables \
    | grep slow_query_log_file | awk '{print $4}'`) \
    | mail -s "slow log from `hostname` sorted by time" shantanu.oak`hostname`@gmail.com \
    > /root/slow_succ.txt 2> /root/slow_err.txt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

/bin/sh: -c: line 0: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

某些字符是否需要在 cron 中转义?还是 cron 中的 subshel​​l 有问题?

cron

9
推荐指数
3
解决办法
7125
查看次数

抑制空白电子邮件

如何抑制空白电子邮件?例如,在下面的例子中,我想

some command | mail -s "tables altered on `hostname`" me@company.com
Run Code Online (Sandbox Code Playgroud)

发送消息后,我收到以下消息:

Null message body; hope that's ok
Run Code Online (Sandbox Code Playgroud)

这不行。如果没有文字,我不想发送邮件。

email email-server

7
推荐指数
2
解决办法
4770
查看次数

已删除用户的 crontab 文件

删除用户后,该用户添加的 crontab 是否也被删除?我问这个是因为我可以在

/var/spool/cron/
Run Code Online (Sandbox Code Playgroud)

当我 cat 文件时,我可以看到该用户添加的 cron。用户不再存在,cron 将无法工作。但是为什么crontab文件还在呢?

useradd cron

7
推荐指数
1
解决办法
3713
查看次数

连接到屏幕

如何安装屏幕?我可以看到一个屏幕正在以下输出中运行,但无法连接到它。

[root@vishnuvm6 ~]# screen -ls
There is a screen on:
        15941.pts-18.vishnuvm6  (Detached)
1 Socket in /var/run/screen/S-root.

[root@vishnuvm6 ~]# screen -x vishnuvm6
There is no screen to be attached matching vishnuvm6.
Run Code Online (Sandbox Code Playgroud)

linux

6
推荐指数
1
解决办法
5962
查看次数

合并两个或多个压缩文件

我有 2 个需要合并为一个的 gz 文件——也就是说,我想将两个 .gz 文件合并为一个,这样当我提取合并的文件时,我会得到一个包含原始输入文件串联的文件。

time join <(zcat r_TR2_2012-05-28-08-10-00.gz) <(zcat r_TR1_2012-05-28-08-10-00.gz)
Run Code Online (Sandbox Code Playgroud)

上面的语句没有按预期工作。我正在使用 3 个命令来完成所需的工作。

gunzip r_TR2_2012-05-28-08-10-00.gz 
gunzip r_TR1_2012-05-28-08-10-00.gz 
tar -zcvf combined.tar.gz r_TR1_2012-05-28-08-10-00 r_TR2_2012-05-28-08-10-00 
Run Code Online (Sandbox Code Playgroud)

然后在提取文件时将文件连接在一起以生成我想要的输出。

有没有办法在 1 条语句中做到这一点?

tar gzip

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

cron ×3

linux ×2

shell ×2

cp ×1

email ×1

email-server ×1

gzip ×1

scp ×1

tar ×1

time ×1

timezone ×1

unix ×1

useradd ×1