chr*_*eaf 1 cron automation dyndns
我已经寻找了几个可能导致我的问题没有运气的原因。这个问题似乎非常特别:我运行 LTS 10.04 的服务器没有正确运行与互联网使用相关的脚本。我正在尝试从我的服务器更新动态 dns,以便我的域将始终指向我的服务器。我通过 ssh 连接到我的服务器进行更改并且它始终在运行。
我在两个地方放置了 cron 脚本:
1) 使用 crontab -e 为当前用户添加一个 crontab
2)在/etc/cron.d/下添加一个文件(也是两个不同的文件)
我确保它们归 root 所有并且拥有所有者的访问位。
排除以下几点:
1) 所有 cron 脚本在我的笔记本电脑上运行完美,我的笔记本电脑也是 10.04 LTS
2) 从命令行运行时,这两个脚本都运行良好。
3)在服务器上,如果我每分钟使用 cron 将“hello”连接到一个文件,它实际上可以工作
要运行的两个脚本中较简单的一个具有如下配置:
* * * * * root /usr/bin/wget "-q --read-timeout=0.0 --waitretry=5 --tries=10 --background http://freedns.afraid.org/dynamic/update.php?...........
Run Code Online (Sandbox Code Playgroud)
我隐藏更新密钥的地方,后面跟着一个新行。
我觉得这一定是我错过的特定于 cron 的东西。
我在 /var 或 /var/log 中也没有 cron 日志文件
如果有我忘记提及的信息,请告诉我。
/var/mail/your_username
。它在 Thunderbird 中被称为 Unix Movemail,但我相信同样的机制还有其他名称。sh
不是bash
.* * * * * /tmp/testscript.sh
内容/tmp/testscript.sh
为:
#!/bin/bash
set
Run Code Online (Sandbox Code Playgroud)
我收到了一封包含以下内容的电子邮件(注意 PATH 非常不同的事情,将其与set
命令行进行比较:
BASH=/bin/bash
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/tmp/testscript.sh")
BASH_VERSINFO=([0]="4" [1]="2" [2]="24" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.24(1)-release'
DIRSTACK=()
EUID=1000
GROUPS=()
HOME=/home/my_username
HOSTNAME=diablo
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LOGNAME=jhendrix
MACHTYPE=x86_64-pc-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/bin:/bin
PPID=623
PS4='+ '
PWD=/home/my_username
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
TERM=dumb
UID=1000
_=/bin/bash
Run Code Online (Sandbox Code Playgroud)