我在 cron 中遇到了 $RANDOM 一个奇怪的问题。我希望在 cronjob 触发后随机数分钟执行命令。
此示例直接在终端中运行并将命令延迟最多 30 秒(将命令替换为您想要的任何内容,它实际上是对 /dev/ttyUSB0 的回显):
sleep `expr $RANDOM \% 30` ; command
Run Code Online (Sandbox Code Playgroud)
如果在 crontab 中放置了同一行,则该命令始终会立即触发而不会延迟:
* * * * * sleep `expr $RANDOM \% 30` ; command
Run Code Online (Sandbox Code Playgroud)
如果我使用没有 $RANDOM 的表达式,它工作正常 - 这会延迟 15 秒:
* * * * * sleep `expr 10 + 5` ; command
Run Code Online (Sandbox Code Playgroud)
换句话说,似乎 $RANDOM 在 cron 中不起作用。
但这不仅仅是因为 $RANDOM 本身的计算结果为零,因为这应该会延迟 10:
* * * * * sleep `expr $RANDOM \% 30 + 10` ; command
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用 && instread ; …
同步我的远程备份时出现错误rsync cannot delete non-empty directory。
我知道原因:我排除了一些文件,当 rsync 尝试删除远程目录时,因为它在本地不存在,它不能,因为它不是空的。如果没有排除,目录将被清空。
我也知道我可以通过使用 --delete-excluded 来解决这个问题,但这不是我想要的。
我想跳过上传某些文件(因为它们对于我的上传速度来说太大了),但我想保留那些我已经上传的文件,如果它们存在于本地。如果它们在本地不存在,则应将其删除。--delete-excluded 将在远程端删除它们。
这也意味着如果一个目录在本地不再存在,即使它包含排除的文件也应该被删除。
是否可以设置 rsync 来完成此操作?
我是亚马逊冰川的新手。我已经成功创建了一个保险库并上传了一些档案。在管理控制台中,我只能看到保管库的名称,它包含 4 个存档,占用 4.2 GiB。但我根本找不到一种方法来列出保险库中的档案。随后我需要删除包含错误数据的档案。
我已经搜索并搜索了一个多小时,但仍然看不到列出保险库内容的方法。