Moved shell files out of web-root directory so they can't be accessed and downloaded by clients.
This commit is contained in:
parent
f58b9c945f
commit
9a1139edae
@ -1,19 +0,0 @@
|
|||||||
total_count=0
|
|
||||||
declare -a crontab_dirs=(
|
|
||||||
/etc/cron.d
|
|
||||||
/etc/cron.daily
|
|
||||||
/etc/cron.hourly
|
|
||||||
/etc/cron.weekly
|
|
||||||
/var/spool/cron
|
|
||||||
)
|
|
||||||
|
|
||||||
for dir in ${crontab_dirs[@]}; do
|
|
||||||
count=0;
|
|
||||||
for file in $dir/*; do
|
|
||||||
count=` ls -1 $dir | wc -l `
|
|
||||||
done
|
|
||||||
echo "- $dir: $count<br>"
|
|
||||||
total_count=$(( $count + $total_count ))
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Total: $total_count"
|
|
27
main.js
27
main.js
@ -1,13 +1,30 @@
|
|||||||
function request_sqlite_version () {
|
function setDatabaseVersion() {
|
||||||
|
url = 'http://localhost:8000/api/database_version.php';
|
||||||
|
response = makeRequest(url);
|
||||||
|
setInfoSection(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function makeRequest(url){
|
||||||
var request = new XMLHttpRequest();
|
var request = new XMLHttpRequest();
|
||||||
request.open("GET", 'http://localhost:8000/database_version.php', false);
|
request.open("GET", url, false);
|
||||||
request.send(null);
|
request.send(null);
|
||||||
return request.responseText;
|
return request.responseText;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setInfoSection (string) {
|
function setCrontabStats(){
|
||||||
var info_section = document.getElementById("content");
|
url = "http://localhost:8000/api/crontab_stats.php";
|
||||||
info_section.innerHTML = request_sqlite_version();
|
response = makeRequest(url);
|
||||||
|
setInfoSection(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setInfoSection (string) {
|
||||||
|
var info_section = document.getElementById("content");
|
||||||
|
info_section.innerHTML = string;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTable(name){
|
||||||
|
url = "http://localhost:8000/api/table.php?name=" + name;
|
||||||
|
response = makeRequest(url);
|
||||||
|
setInfoSection(response);
|
||||||
|
}
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
#!/usr/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
declare -a crontab_dirs=(
|
|
||||||
/etc/cron.d
|
|
||||||
/etc/cron.daily
|
|
||||||
/etc/cron.hourly
|
|
||||||
/etc/cron.weekly
|
|
||||||
/var/spool/cron
|
|
||||||
)
|
|
||||||
|
|
||||||
declare -a crontabs_in_db
|
|
||||||
|
|
||||||
sqlite_cmd='sqlite3 ../webcron.db'
|
|
||||||
|
|
||||||
|
|
||||||
for name in $( $sqlite_cmd <<< "SELECT crontab_path FROM crontabs;"); do
|
|
||||||
crontabs_in_db+=( "$name" )
|
|
||||||
done
|
|
||||||
|
|
||||||
# This will go through and count the number of files in each directory (to determine if they need to be checked)
|
|
||||||
for dir in ${crontab_dirs[@]}; do
|
|
||||||
# If the directory has less than 1 crontab (aka empty) it will be skipped
|
|
||||||
if [[ $( ls -1 $dir | wc -l ) -ge 1 ]]; then
|
|
||||||
for file in $dir/* ; do
|
|
||||||
# For each file in the directory it will check to see if the current file
|
|
||||||
# path is already stored in the DB
|
|
||||||
# if not it will create one and it will be be indexed in the DB
|
|
||||||
if [[ -f $file ]] && [[ ! "${crontabs_in_db[@]}" == *$file* ]]; then
|
|
||||||
$sqlite_cmd <<< "
|
|
||||||
INSERT INTO crontabs (crontab_path, crontab_data) VALUES
|
|
||||||
('$file',
|
|
||||||
'$(<$file)')
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# This will request all of the information from the db relating to all of the indexed crontab's
|
|
||||||
IFS='|'
|
|
||||||
while read crontab_id crontab_path; do
|
|
||||||
# It will initially request the id and path of the file, and then will load in the actual data of the
|
|
||||||
# file to be compared to the file content's on disk.
|
|
||||||
data=`sqlite3 ../webcron.db <<< "SELECT crontab_data FROM crontabs WHERE crontab_id = $crontab_id"`
|
|
||||||
|
|
||||||
# this will check to make sure that the file exists on disk and
|
|
||||||
# will compare the disk and db versions of the file to make sure if a change is needed to be
|
|
||||||
# loaded into the db.
|
|
||||||
if [[ -f $crontab_path ]] && [[ ! "$data" == "$(<$crontab_path)" ]]; then
|
|
||||||
sqlite3 ../webcron.db <<<"
|
|
||||||
UPDATE crontabs SET crontab_data = '$(<$crontab_path)' WHERE crontab_id = $crontab_id
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
done <<< ` sqlite3 ../webcron.db <<< "
|
|
||||||
SELECT crontab_id crontab_name, crontab_path FROM crontabs;
|
|
||||||
" `
|
|
||||||
unset IFS
|
|
Loading…
Reference in New Issue
Block a user