Browse Source

Also expire files uploaded to gnusocial/postactiv

Bob Mottram 8 years ago
parent
commit
bbfa6d353f
1 changed files with 44 additions and 36 deletions
  1. 44
    36
      src/freedombone-utils-gnusocialtools

+ 44
- 36
src/freedombone-utils-gnusocialtools View File

@@ -503,53 +503,61 @@ function expire_gnusocial_posts {
503 503
         expire_months=3
504 504
     fi
505 505
 
506
+    expire_days=$((expire_months * 30))
507
+
506 508
     # To prevent the database size from growing endlessly this script expires posts
507 509
     # after a number of months
508 510
     if [ ! -d /var/www/${domain_name}/htdocs ]; then
509 511
         return
510 512
     fi
511 513
 
512
-    gnusocial_expire_script=/usr/bin/${gnusocial_type}-expire
514
+    gnusocial_expire_posts_script=/usr/bin/${gnusocial_type}-expire-posts
515
+
516
+    echo '<?php' > $gnusocial_expire_posts_script
517
+    echo '' >> $gnusocial_expire_posts_script
518
+    echo "// ${gnusocial_type} post expiry script, based on StatExpire by Tony Baldwin" >> $gnusocial_expire_posts_script
519
+    echo '// https://github.com/tonybaldwin/statexpire' >> $gnusocial_expire_posts_script
520
+    echo '' >> $gnusocial_expire_posts_script
521
+    echo "\$oldate=date((\"Y-m-d\"), strtotime(\"-${expire_months} months\"));" >> $gnusocial_expire_posts_script
522
+    echo '$username="root";' >> $gnusocial_expire_posts_script
523
+    echo "\$password=shell_exec('${PROJECT_NAME}-pass -u root -a mariadb');" >> $gnusocial_expire_posts_script
524
+    echo "\$database=\"${gnusocial_type}\";" >> $gnusocial_expire_posts_script
525
+    echo '' >> $gnusocial_expire_posts_script
526
+    echo 'if (!$link = mysql_connect("localhost", $username, $password)) {' >> $gnusocial_expire_posts_script
527
+    echo '    echo "Could not connect to mariadb";' >> $gnusocial_expire_posts_script
528
+    echo '    exit;' >> $gnusocial_expire_posts_script
529
+    echo '}' >> $gnusocial_expire_posts_script
530
+    echo '' >> $gnusocial_expire_posts_script
531
+    echo 'if (!mysql_select_db($database, $link)) {' >> $gnusocial_expire_posts_script
532
+    echo "    echo \"Could not select ${gnusocial_type} database\";" >> $gnusocial_expire_posts_script
533
+    echo '    exit;' >> $gnusocial_expire_posts_script
534
+    echo '}' >> $gnusocial_expire_posts_script
535
+    echo '' >> $gnusocial_expire_posts_script
536
+    echo "\$notice_query=\"DELETE FROM notice WHERE created <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_posts_script
537
+    echo "\$conversation_query=\"DELETE FROM conversation WHERE created <= '$oldate 01:01:01'\";" >> $gnusocial_expire_posts_script
538
+    echo "\$reply_query=\"DELETE FROM reply WHERE modified <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_posts_script
539
+    echo '' >> $gnusocial_expire_posts_script
540
+    echo 'mysql_query($notice_query);' >> $gnusocial_expire_posts_script
541
+    echo '$rowaff1=mysql_affected_rows();' >> $gnusocial_expire_posts_script
542
+    echo 'mysql_query($conversation_query);' >> $gnusocial_expire_posts_script
543
+    echo '$rowaff2=mysql_affected_rows();' >> $gnusocial_expire_posts_script
544
+    echo 'mysql_query($reply_query);' >> $gnusocial_expire_posts_script
545
+    echo '$rowaff3=mysql_affected_rows();' >> $gnusocial_expire_posts_script
546
+    echo 'mysql_close();' >> $gnusocial_expire_posts_script
547
+    echo '' >> $gnusocial_expire_posts_script
548
+    echo -n "echo \"Expire ${gnusocial_type} posts: " >> $gnusocial_expire_posts_script
549
+    echo '$rowaff1 notices, $rowaff2 conversations, and $rowaff3 replies deleted from database.\n";' >> $gnusocial_expire_posts_script
550
+    chmod +x $gnusocial_expire_posts_script
513 551
 
514
-    echo '<?php' > $gnusocial_expire_script
515
-    echo '' >> $gnusocial_expire_script
516
-    echo "// ${gnusocial_type} post expiry script, based on StatExpire by Tony Baldwin" >> $gnusocial_expire_script
517
-    echo '// https://github.com/tonybaldwin/statexpire' >> $gnusocial_expire_script
518
-    echo '' >> $gnusocial_expire_script
519
-    echo "\$oldate=date((\"Y-m-d\"), strtotime(\"-${expire_months} months\"));" >> $gnusocial_expire_script
520
-    echo '$username="root";' >> $gnusocial_expire_script
521
-    echo "\$password=shell_exec('${PROJECT_NAME}-pass -u root -a mariadb');" >> $gnusocial_expire_script
522
-    echo "\$database=\"${gnusocial_type}\";" >> $gnusocial_expire_script
523
-    echo '' >> $gnusocial_expire_script
524
-    echo 'if (!$link = mysql_connect("localhost", $username, $password)) {' >> $gnusocial_expire_script
525
-    echo '    echo "Could not connect to mariadb";' >> $gnusocial_expire_script
526
-    echo '    exit;' >> $gnusocial_expire_script
527
-    echo '}' >> $gnusocial_expire_script
528
-    echo '' >> $gnusocial_expire_script
529
-    echo 'if (!mysql_select_db($database, $link)) {' >> $gnusocial_expire_script
530
-    echo "    echo \"Could not select ${gnusocial_type} database\";" >> $gnusocial_expire_script
531
-    echo '    exit;' >> $gnusocial_expire_script
532
-    echo '}' >> $gnusocial_expire_script
533
-    echo '' >> $gnusocial_expire_script
534
-    echo "\$notice_query=\"DELETE FROM notice WHERE created <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
535
-    echo "\$conversation_query=\"DELETE FROM conversation WHERE created <= '$oldate 01:01:01'\";" >> $gnusocial_expire_script
536
-    echo "\$reply_query=\"DELETE FROM reply WHERE modified <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
537
-    echo '' >> $gnusocial_expire_script
538
-    echo 'mysql_query($notice_query);' >> $gnusocial_expire_script
539
-    echo '$rowaff1=mysql_affected_rows();' >> $gnusocial_expire_script
540
-    echo 'mysql_query($conversation_query);' >> $gnusocial_expire_script
541
-    echo '$rowaff2=mysql_affected_rows();' >> $gnusocial_expire_script
542
-    echo 'mysql_query($reply_query);' >> $gnusocial_expire_script
543
-    echo '$rowaff3=mysql_affected_rows();' >> $gnusocial_expire_script
544
-    echo 'mysql_close();' >> $gnusocial_expire_script
545
-    echo '' >> $gnusocial_expire_script
546
-    echo -n "echo \"Expire ${gnusocial_type} posts: " >> $gnusocial_expire_script
547
-    echo '$rowaff1 notices, $rowaff2 conversations, and $rowaff3 replies deleted from database.\n";' >> $gnusocial_expire_script
552
+    gnusocial_expire_script=/usr/bin/${gnusocial_type}-expire
553
+    echo '#!/bin/bash' > $gnusocial_expire_script
554
+    echo "/usr/bin/php $gnusocial_expire_posts_script" > $gnusocial_expire_script
555
+    echo "find /var/www/${domain_name}/htdocs/file/* -mtime +${expire_days} -exec rm {} +" > $gnusocial_expire_script
548 556
     chmod +x $gnusocial_expire_script
549 557
 
550 558
     # Add a cron job
551 559
     if ! grep -q "${gnusocial_type}_expire_script" /etc/crontab; then
552
-        echo "10 3 5   *   *   root /usr/bin/timeout 500 /usr/bin/php ${gnusocial_expire_script}" >> /etc/crontab
560
+        echo "10 3 5   *   *   root /usr/bin/timeout 500 ${gnusocial_expire_script}" >> /etc/crontab
553 561
     fi
554 562
 
555 563
     # remove old expire script