在 crontab 我可以设置这个语法 5 4 * * 3-5
转换为每个星期三、星期四和星期五的 4:05,效果很好,但是当使用5-3which(预期)转换为星期五、星期六......星期三时,它说错误的语法,我注意到它应该是有序的,但是什么如果我需要其他方式?
我用它来测试 cron 语法。
今天,当我登录并检查ps输出时,我注意到在root. 我在这里搜索了相关的行:
root 1126 0.0 0.0 2616 424 ? Ss Apr16 0:06 cron
root 6445 0.0 0.0 2400 868 ? Ss 07:30 0:00 anacron -s
root 6566 0.0 0.0 2244 276 ? S 07:35 0:00 /bin/sh -c nice run-parts --report /etc/cron.daily
root 6567 0.0 0.0 2152 524 ? SN 07:35 0:00 run-parts --report /etc/cron.daily
root 6574 0.0 0.0 2244 556 ? SN 07:35 0:00 /bin/sh /etc/cron.daily/apt
root 6615 0.0 0.0 2160 272 ? SN 07:35 0:00 …Run Code Online (Sandbox Code Playgroud) 我想根据一周中某一天的奇偶校验命名文件。在终端中,以下工作:$(($(date +\%u)%2))
但这在 cron 中不起作用(我怀疑对数学表达式的评估不起作用)。
我怎样才能让它在 cron 中工作?
假设我向某人发送了一封电子邮件,其中包含指向我网站的链接,我真的希望他会访问它(手指交叉样式):
http://www.example.com/?utm_source=email392
Run Code Online (Sandbox Code Playgroud)
或者
http://www.example.com/somefile.pdf?utm_source=email392
Run Code Online (Sandbox Code Playgroud)
如何通过定期检查使 Linux 在访问此 URL 时触发操作(例如向自己发送自动电子邮件)/var/log/apache2/other_vhosts_access.log?
我无法在 PHP 级别执行此操作,因为我需要为各种来源/网站执行此操作(其中一些使用 PHP,有些不使用并且只是指向要下载的文件的链接等;即使对于使用 PHP 的网站) ,我不想修改每一个index.php从那里做,这就是为什么我更喜欢 Apache 日志解析方法)
我试图删除超过六天的文件,然后记录被删除的文件。
迄今为止。
在一个sh文件中,我得到了关注;
find /home/pi/ftp/upload -type f -mtime +6 -exec rm {} +
Run Code Online (Sandbox Code Playgroud)
然后在 sudo crontab
59 23 * * * /home/pi/scripts/cullftp.sh > /var/log/ftp/`date +\%Y-\%m-\%d-\%H\%M\%S`-cull.log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是当它在午夜运行时,它只会创建一个空文件,并且没有任何文件被删除。
虽然这段代码有效:
find /home/pi/ftp/upload -type f -mtime +6
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最佳方法是什么。
我有以下文件execute-backup-from-container.sh。这个文件的内容是:
#!/bin/bash
FILE=minime.sql.`date +"%Y%m%d".gz`
CONTAINER='mysql_01'
SCRIPT_ON_CONTAINER='/container-mysql-dump.sh'
${OUTPUT}=$(docker exec ${CONTAINER} /$SCRIPT_ON_CONTAINER)
echo "=============="
echo "$CONTAINER:/$FILE"
echo "=============="
docker cp "$CONTAINER:/$FILE" backup-data/
Run Code Online (Sandbox Code Playgroud)
当我运行时,crontab -e我将输入以下内容:
0 5 * * 1 /home/me/projects/execute-backup-from-container.sh
这意味着execute-backup-from-container.sh应该在每天早上 5:00 执行。
问题是脚本根本没有执行。
那么到底是什么问题呢?为什么不执行?
我正在使用波纹管在 CentOS 7 上安装的 Virtualmin 中每小时运行一个页面
wget https://domain.tld/index.php?page=cron > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
但它会在 cron 运行时每小时创建以下文件
index.php?page=cron
index.php?page=cron.1
index.php?page=cron.2
Run Code Online (Sandbox Code Playgroud)
等等。
请让我知道如何避免创建这些文件。
我有以下命令集用于更新我的托管服务提供商平台上 CentOs 共享托管分区中的所有 WordPress 站点(通过每日 cron)。
集合中的wp命令pushd-popd属于WP-CLI程序,它是一个 Bash 扩展,用于 WordPress 网站上的各种 shell 级操作。
for dir in public_html/*/; do
if pushd "$dir"; then
wp plugin update --all
wp core update
wp language core update
wp theme update --all
popd
fi
done
Run Code Online (Sandbox Code Playgroud)
目录public_html是所有网站目录所在的目录(每个网站通常都有一个数据库和一个主文件目录)。
鉴于public_html有一些不是WordPress 网站目录的目录,WP-CLI 会返回有关它们的错误。
为了防止这些错误,我假设我可以这样做:
for dir in public_html/*/; do
if pushd "$dir"; then
wp plugin update --all 2>myErrors.txt
wp core update 2>myErrors.txt
wp language core update 2>myErrors.txt …Run Code Online (Sandbox Code Playgroud) 我们想在每次晚上 00:00 执行以下行
这行在 crontab 或 cron 作业中有效,尽管命令有几行?
0 0 * * * find . -type f \( -name '*.wsp' -printf WSP -o -printf OTHER \) -printf ' %T@ %b :%p\0' | sort -zk 1,1 -k2,2rn | gawk -v RS='\0' -v ORS='\0' '
{du += 512 * $3}
du > 10 * (2^30) && $1 == "WSP" {
sub("[^:]*:", ""); print
}' | xargs -r0 rm -f
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个通过通知发送发送通知的 cron 作业。
我目前正在尝试这个:
*/2 * * * * DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus /usr/bin/notify-send "test"
Run Code Online (Sandbox Code Playgroud)
如果我只是从终端运行它,这是有效的。
我也试过设置
XAUTHORITY=/home/munhunger/.Xauthority
Run Code Online (Sandbox Code Playgroud)
我有一个类似的 crontab,它运行一个 shell 脚本,该脚本具有打印到日志文件的相同变量,所以我知道 crontab 正在工作。但是,仍然没有显示任何通知。
有没有人知道可能有什么问题?
我正在运行 Ubuntu 17.10,上面有 i3