Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Guilherme Filippo
ISPConfig 3
Commits
2c7ee0fd
Commit
2c7ee0fd
authored
Jun 23, 2009
by
mcramer
Browse files
Fixed: Correct chroot handling of cron jobs
Changed: separate crontab files for chrooted and other cron jobs
parent
0b0dc90a
Changes
1
Hide whitespace changes
Inline
Side-by-side
server/plugins-available/cron_plugin.inc.php
View file @
2c7ee0fd
...
@@ -159,7 +159,6 @@ class cron_plugin {
...
@@ -159,7 +159,6 @@ class cron_plugin {
$client_id
=
intval
(
$client
[
"client_id"
]);
$client_id
=
intval
(
$client
[
"client_id"
]);
unset
(
$client
);
unset
(
$client
);
/** TODO remove deleted record **/
$this
->
parent_domain
=
$parent_domain
;
$this
->
parent_domain
=
$parent_domain
;
$this
->
_write_crontab
();
$this
->
_write_crontab
();
}
}
...
@@ -174,7 +173,13 @@ class cron_plugin {
...
@@ -174,7 +173,13 @@ class cron_plugin {
//* try to find customer's mail address
//* try to find customer's mail address
/** TODO: add possibility for client to choose mail notification! **/
$cron_content
=
"MAILTO=''
\n\n
"
;
$cron_content
=
"MAILTO=''
\n\n
"
;
$chr_cron_content
=
"MAILTO=''
\n\n
"
;
$chr_cron_content
.
=
"SHELL='/usr/sbin/jk_chrootsh'
\n\n
"
;
$cmd_count
=
0
;
$chr_cmd_count
=
0
;
//* read all active cron jobs from database and write them to file
//* read all active cron jobs from database and write them to file
$cron_jobs
=
$app
->
db
->
queryAllRecords
(
"SELECT `run_min`, `run_hour`, `run_mday`, `run_month`, `run_wday`, `command`, `type` FROM `cron` WHERE `parent_domain_id` = "
.
intval
(
$this
->
parent_domain
[
"domain_id"
])
.
" AND `active` = 'y'"
);
$cron_jobs
=
$app
->
db
->
queryAllRecords
(
"SELECT `run_min`, `run_hour`, `run_mday`, `run_month`, `run_wday`, `command`, `type` FROM `cron` WHERE `parent_domain_id` = "
.
intval
(
$this
->
parent_domain
[
"domain_id"
])
.
" AND `active` = 'y'"
);
...
@@ -196,14 +201,35 @@ class cron_plugin {
...
@@ -196,14 +201,35 @@ class cron_plugin {
if
(
substr
(
$job
[
'command'
],
0
,
1
)
!=
"/"
)
$command
.
=
$this
->
parent_domain
[
'document_root'
];
if
(
substr
(
$job
[
'command'
],
0
,
1
)
!=
"/"
)
$command
.
=
$this
->
parent_domain
[
'document_root'
];
$command
.
=
$job
[
'command'
];
$command
.
=
$job
[
'command'
];
}
}
$cron_content
.
=
$command
.
"
\n
"
;
if
(
$job
[
'type'
]
==
'chrooted'
)
{
$chr_cron_content
.
=
$command
.
"
\n
"
;
$chr_cmd_count
++
;
}
else
{
$cron_content
.
=
$command
.
"
\n
"
;
$cmd_count
++
;
}
}
}
}
}
$cron_file
=
escapeshellcmd
(
$cron_config
[
"crontab_dir"
]
.
'/ispc_'
.
$this
->
parent_domain
[
"system_user"
]);
$cron_file
=
escapeshellcmd
(
$cron_config
[
"crontab_dir"
]
.
'/ispc_'
.
$this
->
parent_domain
[
"system_user"
]);
file_put_contents
(
$cron_file
,
$cron_content
);
if
(
$cmd_count
>
0
)
{
file_put_contents
(
$cron_file
,
$cron_content
);
$app
->
log
(
"Wrote Cron file
$cron_file
with content:
\n
$cron_content
"
,
LOGLEVEL_DEBUG
);
}
else
{
@
unlink
(
$cron_file
);
$app
->
log
(
"Deleted Cron file
$cron_file
"
,
LOGLEVEL_DEBUG
);
}
$cron_file
=
escapeshellcmd
(
$cron_config
[
"crontab_dir"
]
.
'/ispc_chrooted_'
.
$this
->
parent_domain
[
"system_user"
]);
if
(
$chr_cmd_count
>
0
)
{
file_put_contents
(
$cron_file
,
$chr_cron_content
);
$app
->
log
(
"Wrote Cron file
$cron_file
with content:
\n
$chr_cron_content
"
,
LOGLEVEL_DEBUG
);
}
else
{
@
unlink
(
$cron_file
);
$app
->
log
(
"Deleted Cron file
$cron_file
"
,
LOGLEVEL_DEBUG
);
}
$app
->
log
(
"Wrote Cron file
$cron_file
with content:
\n
$cron_content
"
,
LOGLEVEL_DEBUG
);
return
0
;
return
0
;
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment