我已经在 Mac OS 上安装了 XAMPP 服务器,如何在其上设置 cron 作业?
我的要求是我想定期调用一个 php 脚本。
谢谢
我想在 Google App Engine 上安排一个 cron 作业,每 10 分钟左右查看一次我的 5 个主页,以保持当前实例正常运行并提高用户的页面速度。我了解创建 cron 作业的所有基本语法,但我很好奇 python 会是什么样子。我是否只需要制作 5 个不同的 cron 作业并让每个作业都获取一个 URL?
我有一个以以下代码开头的程序:
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
Run Code Online (Sandbox Code Playgroud)
此代码返回一个包含数据库表的元组。当我手动运行它时它运行良好,但当我使用 cron 运行它时它运行良好(我使用 Debian Wheezy)。当我用 cron 启动它时,我只有[]作为输出,我不明白为什么。任何的想法 ?谢谢。
编辑:其余代码工作正常,即使由 cron 启动。
EDITbis :这是完整的代码
# Opening of the database
data="bdd-test.sq3"
conn =sqlite3.connect(data)
cur =conn.cursor()
type_liste=[]
table_liste=[]
# Listing and opening of the tables
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
for table in cur.fetchall():
table=table[0]
if '_m' in table:
cur.execute("CREATE TABLE IF NOT EXISTS {} (date TEXT, type TEXT, zone TEXT, min REAL, max REAL, moyenne REAL)".format(table))
else:
type_liste.append(table)
cur.execute("CREATE TABLE …Run Code Online (Sandbox Code Playgroud) 我有一个 PHP 文件,它在文件末尾包含一个 META 刷新/重定向到另一个 PHP 文件。
我尝试在 cron 作业中将文件作为 URL 获取。示例: wget http://www.domain.com/file.php
并且 cron 作业工作正常,但重定向不起作用。
我的 file.php 包含如下内容:
Some Codes
...
<META HTTP-EQUIV=Refresh CONTENT="5; URL=http://www.domain.com/file2.php" >
Run Code Online (Sandbox Code Playgroud)
如何使用 wget 将 cron 作业从当前 URL 重定向到另一个 URL?
谢谢。
我在 /app/Console/Command 中编写了一个名为 SyncVeevaShell.php 的 Shell 文件(它基本上是一些控制器函数的复制/粘贴),它应该每 10 分钟通过一次 cronjob 运行一次,但它不起作用。当我尝试通过命令“sh cake SyncVeevaShell.php”手动运行 shell 时,我收到一条错误消息,提示找不到插件 SyncVeevaShell。我不明白为什么它会提到一个插件,因为我不想使用它。
同步VeevaShell.php:
<?php
App::uses('AppShell', 'Console/Command');
class SyncVeevaShell extends AppShell {
public $uses = array('Asset', 'VeevaVault');
public function main()
{
$this->autoRender = false;
App::import('Model', 'Segment');
$Segment = new Segment();
App::import('Vendor', 'phpVeeva', array('file' => 'veeva' . DS . 'veeva.php'));
$veeva = new phpVeeva();
$veevaList = $veeva->getDocList();
$this->remove_veeva_asset($veevaList);
$i = 0;
while ($i < count($veevaList))
{
$obj = $veevaList[$i];
$filename = $obj->{$veeva::LIST_VALUES}[8];
$major_ver = $obj->{$veeva::LIST_VALUES}[6];
$minor_ver = $obj->{$veeva::LIST_VALUES}[7]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 cron 运行 shell 脚本文件,但出现权限被拒绝错误。
这是我的 cron 文件。
53 14 30 10 * $HOME/Documents/Python/shellScript.sh
Run Code Online (Sandbox Code Playgroud)
我想在今天的特定时间运行 shellScript 文件。
这是我的 shellScript.sh 文件。
osascript<<EOF
tell application "System Events"
tell process "Terminal" to keystroke "t" using command down
end
tell application "Terminal"
activate
do script with command "python file1.py" in window 1
end tell
EOF
osascript<<EOF
tell application "System Events"
tell process "Terminal" to keystroke "t" using command down
end
tell application "Terminal"
activate
do script with command "./ngrok 5000" in window 1
end …Run Code Online (Sandbox Code Playgroud) 所以我设置了一个 cron 选项卡
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * …Run Code Online (Sandbox Code Playgroud) 我编写以下代码每天在 16:20 运行我的函数..
但我想是代码中的问题..
不工作
纪元时间戳:1427488800
2015/3/28 上午 1:10:00
if( !wp_next_scheduled( 'import_into_db' ) ) {
wp_schedule_event( time('1427488800'), 'daily', 'import_into_db' );
function import_into_db(){
////My code
}
add_action('wp', 'import_into_db');
}
Run Code Online (Sandbox Code Playgroud) 我正在使用带有 php5 的 larave 5.1,我尝试创建我的 cron 作业以及时删除未付发票,但我测试它以打印用户日志以帮助我知道该作业正在运行。
这是我的应用程序/控制台/Kernel.php
protected $commands = [
\App\Console\Commands\Inspire::class,
\App\Console\Commands\RemoveUnpaidInvoice::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('removeUnpaidInvoice')->everyMinute();
// $schedule->command('inspire')->hourly();
}
Run Code Online (Sandbox Code Playgroud)
这是我的 RemoveUnpaidInvoice 类:
public function handle()
{
UserLog::create([
'user_id' => '3',
'title' => 'Cron Testing',
'log' => 'Time : ' . date('H:i:s')
]);
}
Run Code Online (Sandbox Code Playgroud)
我的文件完成后,我在我的终端运行这个命令来运行我的 cron:
php artisan schedule:run
Run Code Online (Sandbox Code Playgroud)
在我运行 schedule artisan 命令后,我的终端显示此消息:
Running scheduled command: '/usr/bin/php5' 'artisan' removeUnpaidInvoice > '/dev/null' 2>&1 &
Run Code Online (Sandbox Code Playgroud)
我认为这是可行的,然后我检查我的数据库以查看是否创建了用户日志,并创建了用户日志,通过 cron 添加了新用户日志。
但问题是,我等了一分钟,没有添加用户日志,等 2 分钟、3 分钟或更长时间,我的数据库中没有添加其他用户日志?
如何解决?我弄错了吗??
我的 php 文件 (file1.php) 中有一个函数。我正在尝试使用 cronjob 来调用此函数。我的 cron 作业命令是:
php /home/name/public_html/file1.php mail1
Run Code Online (Sandbox Code Playgroud)
作为参考,函数代码在下面,当直接从文件调用时可以工作(即,问题似乎与函数本身无关。
function mail1($runTotal, $accountArray){
$to = $accountArray[0]['phoneNumber'] . '@vzwpix.com';
$subject = '';
$msg = "You have spent $" . $runTotal . " of $1,750 since the beginning of the month.;;
$msg = wordwrap($msg);
$headers = 'From: email@email.com';
if (mail($to, $subject, $msg, $headers)) {
echo $msg . " sent to " . $to;
}
}
Run Code Online (Sandbox Code Playgroud)
我是否以错误的方式调用该函数?