Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
creare template html per instbot phyton
#31
certo! dentro la cartella instabot
Cita messaggio
#32
La cartella "web" deve essere all'interno di "/var/www/vincisinstabot/".
Mattia!
Cita messaggio
#33
fatto, ma mi viene fuori lo stesso identico errore.
A questo punto però ti devo specificare che la cartella "instabot" e la cartella "vincisinstabot" sono in due percorsi differenti
Cita messaggio
#34
La cartella "web" deve essere dove c'è lo script. Se necessiti che sia da un'altra parte, devi correggere il percorso nella riga in cui utilizzi fopen.

L'errore "No such file or directory" significa che non riesce a trovare la cartella, però per sicurezza prova a dare alla cartella "web" i permessi 777 (se utilizzi FileZilla, qui trovi una guida).

Se ancora ci sono problemi e la cartella "web" si trova nella stessa in cui c'è lo script, prova a modificare in questo modo:
Codice PHP:
$fp fopen(__DIR__.'/web/'.$username.'.py''w'); 
Mattia!
Cita messaggio
#35
dunque, ho cambiato i permessi della cartella e adesso effettivamnte mi viene creato il file fakechatapp.py :
Citazione:Creazione OK

Username: fakechatapp

array(6) { ["username"]=> string(11) "fakechatapp" ["password"]=> string(9) "miapassword" [1000]=> string(3) "100" ["follow4follow"]=> string(13) "follow4follow" [50]=> string(2) "10" ["wow,_beautiful"]=> string(13) "bella, storia" }
solo che guardando il file, al suo intenro non sono stati sovrascritti i parametri che ho messo nel form.... al momento il file è la copia esatta di example.py
Cita messaggio
#36
Sì, in questo momento copia semplicemente il contenuto di "example.py" nel nuovo file.

Adesso dovresti modificare il file "example.py" inserendo dei segnaposti al posto dei valori che vuoi sostituire.

Per esempio, potresti modificare così le prime righe:
Codice:
login={USERNAME},
password={PASSWORD},
like_per_day={LIKE_PER_DAY},

Subito prima di scrivere il file, devi sostituire i vari segnaposti con i valori passati dal form e ripuliti da eventuali caratteri maligni, però dovresti prima correggere il form assegnando ai vari tag "input" degli attributi "name" che abbiano senso. Per esempio, "username" e "password" hanno senso, ma arriva anche un campo di nome "1000" con valore "100".
Mattia!
Cita messaggio
#37
non sono sicuro di aver capito tutto... partiamo dall'example originale:
Codice:
bot = InstaBot(
    login="username",
    password="password",
    like_per_day=1000,
    comments_per_day=0,
    tag_list=['follow4follow', 'f4f', 'cute'],
    tag_blacklist=['rain', 'thunderstorm'],
    user_blacklist={},
    max_like_for_one_tag=50,
    follow_per_day=300,
    follow_time=1 * 60,
    unfollow_per_day=300,
    unfollow_break_min=15,
    unfollow_break_max=30,
    log_mod=0,
    proxy='',
    # List of list of words, each of which will be used to generate comment
    # For example: "This shot feels wow!"
    comment_list=[["this", "the", "your"],
                  ["photo", "picture", "pic", "shot", "snapshot"],
                  ["is", "looks", "feels", "is really"],
                  ["great", "super", "good", "very good", "good", "wow",
                   "WOW", "cool", "GREAT","magnificent", "magical",
                   "very cool", "stylish", "beautiful", "so beautiful",
                   "so stylish", "so professional", "lovely",
                   "so lovely", "very lovely", "glorious","so glorious",
                   "very glorious", "adorable", "excellent", "amazing"],
                  [".", "..", "...", "!", "!!", "!!!"]],
perchè in alcune voci c'è la [ (tipo in tag_list e comment_list)e in altre no? E' una differenza rilevante? E perchè per alcune voci ci sono gli apici ' e in altri le virgolette " ?

Ad ogni modo seguendo le tue indicazioni ho modificato example.py in questo modo:
Codice:
bot = InstaBot(
    login={USERNAME},
    password={PASSWORD},
    like_per_day={LIKE_PER_DAY},
    comments_per_day=0,
    tag_list={TAG_LIST},
    tag_blacklist=['rain', 'thunderstorm'],
    user_blacklist={},
    max_like_for_one_tag=50,
    follow_per_day={FOLLOW_PER_DAY},
    follow_time=1 * 60,
    unfollow_per_day={UNFOLLOW_PER_DAY},
    unfollow_break_min=15,
    unfollow_break_max=30,
    log_mod=0,
    proxy='',
    # List of list of words, each of which will be used to generate comment
    # For example: "This shot feels wow!"
    comment_list={COMMENTS_LIST},

Per quanto riguarda il form, la mia intenzione era mettere come attributo "name" degli "esempi" di parametri che poi l'utente può inserire a suo piacimento (per questo su like per day ho messo "1000" come esempio). Come si fa un controllo che ripulisce eventuali caratteri maligni? E infine come si passano i valori dal form al file.py?

Attendo tue
Grazie

Chand
Cita messaggio
#38
Le virgolette e gli apici comprendono entrambi dei testi, quindi in questo caso solo la stessa cosa.
Dove ci sono le parentesi quadre significa che è un array (un elenco) di dati (per esempio, l'elenco di tag).

Il parametro "name" dei campi di input è il nome del campo che viene passato allo script tramite il form. Se vuoi mettere dei valori di esempio, puoi fare in due modi:
  1. utilizzi il parametro "value" che mette un valore di default al campo (quindi, se non viene cancellato o sostituito, viene passato tramite il form);
  2. utilizzi il parametro "placeholder" che mostra un valore che non viene passato dal form e che scompare appena il campo di input viene selezionato.

Per sostituire i valori nel file di esempio si può utilizzare str_replace.
Per esempio, il valore dell'username che abbiamo già perché lo utilizziamo per il nome del file ed è già pulito, può essere sostituito in questo modo (queste operazioni vanno fatte subito prima dell'apertura del file con fopen):
Codice PHP:
$example str_replace('{USERNAME}''"'.$username.'"'$example); 

Nel caso della password, che è sempre un testo ma può contenere praticalmente qualsiasi carattere, si può utilizzare addslashes:
Codice PHP:
$example str_replace('{PASSWORD}''"'.addslashes(isset($_POST['password']) && is_string($_POST['password']) ? $_POST['password'] : '').'"'$example); 

Nel caso dei numeri interi si possono forzare con intval (inoltre potresti utilizzare, se non lo fai già, il parametro "type" con valore "number" per questi campi di input):
Codice PHP:
$example str_replace('{LIKE_PER_DAY}', isset($_POST['like_per_day']) && is_numeric($_POST['like_per_day']) ? intval($_POST['like_per_day']) : 0$example); 

Per i campi con degli elenchi, come i tag, si può utilizzare json_encode (prima separo i singoli valori con explode):
Codice PHP:
// Se sono stati passati dei tag, li separo in base alla virgola
$tag_list = isset($_POST['tag_list']) && is_string($_POST['tag_list']) ? explode(','$_POST['tag_list']) : array();

// Controllo che tutti i tag siano compilati (evito che ci sia una tag vuoto nel caso si scriva "tag1, , tag2")
$counter count($tag_list);
for (
$i 0$i $counter$i++) {
    
$tag_list[$i] = trim($tag_list[$i]);
    if (
$tag_list[$i] == '') {
        unset(
$tag_list[$i]);
    }
}
$tag_list array_values($tag_list);

// Sostituisco il segnaposto
$example str_replace('{TAG_LIST}'json_encode($tag_list), $example); 
Mattia!
Cita messaggio
#39
quindi dovrei sisemare instabot.html così:
Codice:
<!DOCTYPE html>
<html lang="it">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="resources/css/reset.css">
<link rel="stylesheet" href="resources/css/layout.css">
<script type="text/javascript" src="resources/js/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="resources/js/custom.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>

<body>
    <div class="container">
        <header>
            <h2 class="logo">Vincistabot</h2>
            <h1>Vincistabot</h1>
        </header>
        <section>
            <div class="content-wrapper-dark">
                <h2>Compila il tuo instagram Bot</h2>
                <hr class="big-dashed" /><form action="instascript.php" method="post">
                <h3>login</h3><input class="input-social" type="text" name="username" />
                <h3>password</h3><input class="input-social flt-lft" type="password" name="password" />
                <br class="clearfix" />
                <h3>like per day</h3><input class="input-social" type="text" name="like_per_day"  placeholder="1000" />
                <h3>tag list (separati da una virgola)</h3><input class="input-social" type="text" name="tag_list" placeholder="follow4follow" />
                <h3>follow per day</h3><input class="input-social flt-lft" type="text" name="follow_per_day" placeholder="50" /><br class="clearfix" />
                <h3>unfollow per day</h3><input class="input-social flt-lft" type="text" name="unfollow_per_day" placeholder="50" /><br class="clearfix" />
                <h3>comments (separati da una virgola)</h3><input class="input-social flt-lft" type="text" name="comment_list" placeholder="wow, beautiful" />
                <br class="clearfix" />
                <button type="submit" class="button-go button-go2 flt-lft">VAI</button><br class="clearfix" /></form>
            </div>
            
        </section>
        <footer>
            
        </footer>
    </div>
</body>
</html>

e instascript.php così:
Codice:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Leggo il contenuto del file "example.py".
$example = file_get_contents('/home/chand/instabot/example.py');

// Leggo il valore dell'username ed elimino tutti i caratteri diversi da lettere, numeri, - e _
$username = isset($_POST['username']) && is_string($_POST['username']) ? preg_replace('/([^a-z0-9-_]+)/i', '', trim($_POST['username'])) : '';  

// Sostituisco l'username inserito nel form con quello presente in "example.py"
$example = str_replace('{USERNAME}', '"'.$username.'"', $example);

// Sostituisco la password inserita nel form con quella presente in "example.py"
$example = str_replace('{PASSWORD}', '"'.addslashes(isset($_POST['password']) && is_string($_POST['password']) ? $_POST['password'] : '').'"', $example);

// Inserisco il numero corretto di like_per_day
$example = str_replace('{LIKE_PER_DAY}', isset($_POST['like_per_day']) && is_numeric($_POST['like_per_day']) ? intval($_POST['like_per_day']) : 0, $example);

// Se sono stati passati dei tag, li separo in base alla virgola
$tag_list = isset($_POST['tag_list']) && is_string($_POST['tag_list']) ? explode(',', $_POST['tag_list']) : array();

// Controllo che tutti i tag siano compilati (evito che ci sia una tag vuoto nel caso si scriva "tag1, , tag2")
$counter = count($tag_list);
for ($i = 0; $i < $counter; $i++) {
    $tag_list[$i] = trim($tag_list[$i]);
    if ($tag_list[$i] == '') {
        unset($tag_list[$i]);
    }
}
$tag_list = array_values($tag_list);

// Sostituisco il segnaposto
$example = str_replace('{TAG_LIST}', json_encode($tag_list), $example);

// Inserisco il numero corretto di follow_per_day
$example = str_replace('{FOLLOW_PER_DAY}', isset($_POST['follow_per_day']) && is_numeric($_POST['follow_per_day']) ? intval($_POST['follow_per_day']) : 0, $example);

// Inserisco il numero corretto di unfollow_per_day
$example = str_replace('{UNFOLLOW_PER_DAY}', isset($_POST['unfollow_per_day']) && is_numeric($_POST['unfollow_per_day']) ? intval($_POST['unfollow_per_day']) : 0, $example);

// Se sono stati passati dei commenti, li separo in base alla virgola
$tag_list = isset($_POST['comment_list']) && is_string($_POST['comment_list']) ? explode(',', $_POST['comment_list']) : array();

// Controllo che tutti i commenti siano compilati
$counter = count($comment_list);
for ($i = 0; $i < $counter; $i++) {
    $comment_list[$i] = trim($comment_list[$i]);
    if ($comment_list[$i] == '') {
        unset($comment_list[$i]);
    }
}
$comment_list = array_values($comment_list);

// Sostituisco il segnaposto dei commenti
$example = str_replace('{COMMENT_LIST}', json_encode($comment_list), $example);

// Creo il nuovo file solo se è stato inviato un valore per il campo username
if ($username != '') {
    $fp = fopen('web/'.$username.'.py', 'w');
    fwrite($fp, $example);
    fclose($fp);
    
// Richiamo il file con la classe
require('class.php');

// Creo il cron con Ssh2_contab_manager
$crontab = new Ssh2_crontab_manager('ipserver', 'porta', 'user', 'password');

$crontab->append_cronjob('01 06 * * * /home/chand/instabot/'.$username.'.py');
echo '<p>Creazione OK</p>';
}

echo '<p>Username: '.$username.'</p>';
var_dump($_POST);

?>

Corretto?
Cita messaggio
#40
In linea di massima il codice sembrerebbe corretto.

Tutto il blocco dove fai le sostituzioni dovrebbe andare subito prima di "fopen" (dentro l'if).

Dove recuperi i commenti dovresti correggere il nome della variabile:
Codice PHP:
// Se sono stati passati dei commenti, li separo in base alla virgola
$comment_list = isset($_POST['comment_list']) && is_string($_POST['comment_list']) ? explode(','$_POST['comment_list']) : array(); 
Mattia!
Cita messaggio
#41
ho sicuramente sbagliato qualcosa perchè mi da errore:
Citazione:Notice: Undefined variable: username in /var/www/vincisinstabot/instascript.php on line 9

Notice: Undefined variable: username in /var/www/vincisinstabot/instascript.php on line 73
Username:

array(7) { ["username"]=> string(11) "fakechatapp" ["password"]=> string(9) "password" ["like_per_day"]=> string(3) "100" ["tag_list"]=> string(28) "follow4follow, bella, storia" ["follow_per_day"]=> string(2) "10" ["unfollow_per_day"]=> string(2) "10" ["comment_list"]=> string(13) "bella, storia" }

questo il codice per come l'ho corretto:
Codice:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Leggo il contenuto del file "example.py".
$example = file_get_contents('/home/chand/instabot/example.py');

// Creo il nuovo file solo se è stato inviato un valore per il campo username
if ($username != '') {
    // Leggo il valore dell'username ed elimino tutti                                             i caratteri diversi da lettere, numeri, - e _
$username = isset($_POST['username']) && is_string($_POST['username']) ? preg_replace('/([^a-z0-9-_]+)/i', '', trim($_POST['username'])) : '';  

    // Sostituisco l'username inserito nel form con quello presente in "example.py"
$example = str_replace('{USERNAME}', '"'.$username.'"', $example);

    // Sostituisco la password inserita nel form con quella presente in "example.py"
$example = str_replace('{PASSWORD}', '"'.addslashes(isset($_POST['password']) && is_string($_POST['password']) ? $_POST['password'] : '').'"', $example);

    // Inserisco il numero corretto di like_per_day
$example = str_replace('{LIKE_PER_DAY}', isset($_POST['like_per_day']) && is_numeric($_POST['like_per_day']) ? intval($_POST['like_per_day']) : 0, $example);

    // Se sono stati passati dei tag, li separo in base alla virgola
$tag_list = isset($_POST['tag_list']) && is_string($_POST['tag_list']) ? explode(',', $_POST['tag_list']) : array();

    // Controllo che tutti i tag siano compilati (evito che ci sia una tag vuoto nel caso si scriva "tag1, , tag2")
$counter = count($tag_list);
for ($i = 0; $i < $counter; $i++) {
    $tag_list[$i] = trim($tag_list[$i]);
    if ($tag_list[$i] == '') {
        unset($tag_list[$i]);
    }
}
$tag_list = array_values($tag_list);

    // Sostituisco il segnaposto
$example = str_replace('{TAG_LIST}', json_encode($tag_list), $example);

    // Inserisco il numero corretto di follow_per_day
$example = str_replace('{FOLLOW_PER_DAY}', isset($_POST['follow_per_day']) && is_numeric($_POST['follow_per_day']) ? intval($_POST['follow_per_day']) : 0, $example);

    // Inserisco il numero corretto di unfollow_per_day
$example = str_replace('{UNFOLLOW_PER_DAY}', isset($_POST['unfollow_per_day']) && is_numeric($_POST['unfollow_per_day']) ? intval($_POST['unfollow_per_day']) : 0, $example);

    // Se sono stati passati dei commenti, li separo in base alla virgola
$comment_list = isset($_POST['comment_list']) && is_string($_POST['comment_list']) ? explode(',', $_POST['comment_list']) : array();

    // Controllo che tutti i commenti siano compilati
$counter = count($comment_list);
for ($i = 0; $i < $counter; $i++) {
    $comment_list[$i] = trim($comment_list[$i]);
    if ($comment_list[$i] == '') {
        unset($comment_list[$i]);
    }
}
$comment_list = array_values($comment_list);

    // Sostituisco il segnaposto dei commenti
$example = str_replace('{COMMENT_LIST}', json_encode($comment_list), $example);
    $fp = fopen('web/'.$username.'.py', 'w');
    fwrite($fp, $example);
    fclose($fp);
    
// Richiamo il file con la classe
require('class.php');

// Creo il cron con Ssh2_contab_manager
$crontab = new Ssh2_crontab_manager('ipserver', 'porta', 'usr', 'psw');

$crontab->append_cronjob('01 06 * * * /home/chand/instabot/'.$username.'.py');
echo '<p>Creazione OK</p>';
}

echo '<p>Username: '.$username.'</p>';
var_dump($_POST);

?>
Cita messaggio
#42
Questa parte va dov'era prima, perché prima verifico che ci sia l'username e poi faccio tutte le altre operazioni.
Codice PHP:
// Leggo il valore dell'username ed elimino tutti i caratteri diversi da lettere, numeri, - e _
$username = isset($_POST['username']) && is_string($_POST['username']) ? preg_replace('/([^a-z0-9-_]+)/i'''trim($_POST['username'])) : ''
Mattia!
Cita messaggio
#43
ok, adesso funzia tutto! Il file viene creato correttamente e anche i dati vengono inseriti correttamente, però due precisazioni:
-in tag_list ci vanno gli apici ' e non le virgolette " (non so se fa realmente differenza)
-in comment_list le parole vengono virgolettate e separate correttamente, ma nella sintassi del file in Example.py è:
Codice:
comment_list=[["commento1", "commento2", "commento3"]],
a quanto pare la doppia [[ è fondamentale per farli visualizzare correttamente!
-infine, esiste un modo per vedere se lo script è in esecuzione, e se si, se viene eseguito correttamente senza errori? una sorta di log che però posso visualizzare da una pagina web (ad esempio accedo una pagina che mi dice che allo state attuale ci sono username1.py, username2.py e username3.py e che solo username 1 è in esecuzione)

Non so se mi sono spiegato...
Cita messaggio
#44
Per "tag_list" vanno bene sia le virgolette doppie che gli apici singoli.

"comment_list" deve diventare un array di array.
Codice PHP:
// Se sono stati passati dei commenti, li separo in base alla virgola
$comment_list = isset($_POST['comment_list']) && is_string($_POST['comment_list']) ? array(explode(',', $_POST['comment_list'])) : array(); 

Per leggere i file presenti nella cartella si può utilizzare la funzione "glob". Per vedere se i cron job sono in funzione dovresti vedere se è una funzione prevista dalla classe (adesso sono sul cellulare e non riesco a verificare).
Mattia!
Cita messaggio
#45
c'è qualcosa che nn va
Citazione:Warning: trim() expects parameter 1 to be string, array given in /var/www/vincisinstabot/instascript.php on line 51
Creazione OK

Username: fakechatapp

array(7) { ["username"]=> string(11) "fakechatapp"...

per quanto riguarda la funzione glob è giusta una cosa del genere:
Codice:
$py = glob('web/*.py');
print_r($py);

oppure una cosa più completa così:
Codice:
<?php
// recupero dalla querystring il tipo di file da mostrare
$py = $_GET['py'];

// verifico che il formato sia supportato
if (!preg_match('/^(pdf|doc|jpg|gif|png|py)$/', $py)) {
  echo 'Formato non supportato';
  exit;  
}

// estraggo i file con la giusta estensione
$f = glob('web/*.'.$py);

// faccio un ciclo e stanpo a video i nomi dei files corrispondenti
foreach ($f as $filename) {
  echo basename($filename) . '<br>';
}
?>
Cita messaggio
#46
Cosa c'è a riga 51?

Il primo esempio di codice dell'utilizzo della funzione glob è quello corretto.
Mattia!
Cita messaggio
#47
questo è quello che c'è a riga 51:
Codice:
$comment_list[$i] = trim($comment_list[$i]);
Cita messaggio
#48
Si deve modificare il controllo, visto che è diventato un array di array.
Codice PHP:
// Controllo che tutti i commenti siano compilati
if (isset($comment_list[0])) {
    
$counter count($comment_list[0]);
    for (
$i 0$i $counter$i++) {
        
$comment_list[0][$i] = trim($comment_list[0][$i]);
        if (
$comment_list[0][$i] == '') {
            unset(
$comment_list[0][$i]);
        }
    }
    
$comment_list[0] = array_values($comment_list[0]);

Mattia!
Cita messaggio
#49
ok, adesso anche i commenti vengono inseriti correttamente! Grazie! Big Grin
ho creato un file monitor.php col codice prima citato ed effettivamente mi visualizza i file presenti nella cartella web. A questo punto resterebbe da capire se è possibile vedere se i cron job sono in funzione (bisognerebbe verificare s è una funzione prevista dalla classe).
Cita messaggio
#50
La parte che crea il cron job adesso non dovrebbe funzionare perché il percorso è sbagliato.
Dovrebbe essere così:
Codice PHP:
$crontab->append_cronjob('01 06 * * * /var/www/vincisinstabot/web/'.$username.'.py'); 

Ho riguardato velocemente la classe e non ho trovato un metodo per verificare che un cron job sia in funzione.
Dovresti provare ad aggiungere un altro metodo alla classe (è praticamente identico a "exec" solo che restituisce il risultato):
Codice PHP:
public function exec_output() {
    
$argument_count func_num_args();

    try
    {
        if ( ! 
$argument_count) throw new Exception("There is nothing to execute, no arguments specified.");

        
$arguments func_get_args();

        
$command_string = ($argument_count 1) ? implode(" && "$arguments) : $arguments[0];

        
$stream = @ssh2_exec($this->connection$command_string);
        if ( ! 
$stream) throw new Exception("Unable to execute the specified commands: <br />{$command_string}");
        
        return 
stream_get_contents($stream);
    }
    catch
    {
        
$this->error_message($e->getMessage());
    }

    return 
null;


Nel file "monitor.php" inserisci le righe di codice per includere la classe (copia i parametri corretti dallo script di creazione):
Codice PHP:
// Richiamo il file con la classe
require('class.php');

// Creo il cron con Ssh2_contab_manager
$crontab = new Ssh2_crontab_manager('host''port''my_username''my_password'); 

Poi dovresti provare a vedere se il metodo che ho creato io stampa qualcosa di sensato (dovrebbe stampare l'elenco dei cron job attivi):
Codice PHP:
var_dump($crontab->exec_output('crontab -l')); 
Mattia!
Cita messaggio
#51
eccomi, allora ho seguito le tue istruzioni, però mi dava errore nella classe, ho risolto sostituentdo
Codice:
}
    catch
    {
con
Codice:
}
    catch (Exception $e)
    {
adesso tutto viene creato correttamente e se vado nella pagina monitor.php mi visualizza:
Citazione:Array ( [0] => web/fakechatapp.py ) string(487) "01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /home/chand/instabot/fakechatapp.py 01 06 * * * /var/www/vincisinstabot/web/fakechatapp.py "
mi visualizza le impostazioni del cron, ma non mi dice quale sia attivo (o meglio in esecuzione)
Cita messaggio
#52
Restituisce tutti i cron job che dovrebbero essere attivi (cioè vanno in esecuzione in base al periodo che è stato assegnato).
Per "in esecuzione" intendi i cron job che funzionano correttamente?
Mattia!
Cita messaggio
#53
esattamente!
Cita messaggio
#54
A dir la verità, non saprei come fare un elenco dei cron job che funzionano correttamente.
La lista restituita dal comando "crontab -l" dovrebbe restituire tutti i cron job impostati che potrebbero funzionare o meno.
Mattia!
Cita messaggio
#55
beh, considerando arresti anomali o problemi di rete, mi piacerebbe capire se e quando gli script.py sono in esecuzione e se eseguiti correttamente. In realtà non mi è ancora chiaro esattamente come funzion il cron job, ad esempio io l'ho settato che ogni giorno alle 6.00 del mattino si avvii lo script.py, ma per quanto resta in esecuzione? Quando si chiude, se alla fine ripartirà la mattina seguente sempre alle 6.00 am?
Cita messaggio
#56
Se hai impostato uno script ogni giorno alle 6:00, ogni giorno alle 6:00 lo script andrà in esecuzione finchè non avrà finito o non avrà dato errore.
Mattia!
Cita messaggio
#57
esatto, ed io vorrei sapere se e quando sarà finito o se avrà mai dato errore...
Cita messaggio
#58
Prima di tutto dovresti provare a eseguire lo script tramite linea di comando per vedere se stampa qualcosa già di suo.

Se stampa qualcosa, potresti provare a modificare il punto in cui crei il cron job in modo da salvare l'output in un file di log (se non ho scritto castronerie, dovrebbe salvare l'output in un file di log con lo stesso nome e nella stasse cartella).
Codice PHP:
$crontab->append_cronjob('01 06 * * * /var/www/vincisinstabot/web/'.$username.'.py >> /var/www/vincisinstabot/web/'.$username.'.log 2>&1'); 
Mattia!
Cita messaggio
#59
fatto, ma non vedo nessun file di log nella stessa cartella.
Inoltre, cosa molto strana, avevo fatto delle prove con l'account "fakechatapp", poi ho eliminato il file e creato uno nuovo con i commenti giusti... ma ancora adesso trovo dei mi piace a dei commenti (che corrispondo ai vecchi commenti), ma che sono stati scritti qualche ora fa.. com'è possibile se ho eliminato il file molto prima di qualche ora fa? Sembra che ci sia ancora lo script vecchio in esecuzione da qualche parte... ma che io nn lo veda...
Cita messaggio
#60
oggi ho trovato il log, ma purtroppo lo script non va:
Citazione:/bin/sh: 1: /var/www/vincisinstabot/web/fakechatapp.py: Permission denied
Hai idea per quale motivo mi dia permesso negato?

p.s. per il caso prima citato del vecchio script di fakechat che era ancora in esecuzione da qualche parte, mi sono accorto che tra le varie prove ne avevo messo uno dentro la cartella /instabot ed era proprio quello che andava (anche se non ho capito come possa essersi attivato un cron che puntasse su quella cartella). Se non altro sappiamo che dentro la cartella instabot i file vengono eseguiti correttamente...
Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  script per generazione immagine da template Chandler 135 278.528 18/07/2015 08:19
Ultimo messaggio: Mattia

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)