{"id":806,"date":"2026-10-02T09:05:36","date_gmt":"2026-10-02T06:05:36","guid":{"rendered":"https:\/\/hosting.in.ua\/blog\/?p=806"},"modified":"2026-10-02T09:05:37","modified_gmt":"2026-10-02T06:05:37","slug":"automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging","status":"publish","type":"post","link":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/","title":{"rendered":"Automated Website &#038; Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging"},"content":{"rendered":"<p>Regular backups are the only reliable defense against server failures, CMS update errors, or cyberattacks. While most control panels (Plesk, cPanel) include built-in backup tools, the archives they generate are often stored in isolated system directories that are inaccessible via standard FTP\/SFTP accounts.<\/p>\n<p>In this article, we will cover how to build a universal Bash script tailored for VPS\/VDS or hosting environments with SSH access. The script automatically dumps MySQL\/MariaDB databases, archives files across multiple websites, aggregates them into a single archive, maintains a detailed execution log, and deletes backups older than 7 days.<\/p>\n<h2>Requirements &#038; Limitations<\/h2>\n<p>This solution is designed for <strong>VPS\/VDS servers<\/strong> or <strong>web hosting with SSH access<\/strong>. Requirements include:<\/p>\n<ul>\n<li>Command-line access (SSH \/ Bash).<\/li>\n<li>Installed utilities: <code>mysqldump<\/code>, <code>tar<\/code>, <code>find<\/code>, <code>cron<\/code>.<\/li>\n<li>Adequate I\/O and RAM limits (on cheap Shared hosting, compression of large sites may be killed by resource limits or timeouts).<\/li>\n<\/ul>\n<h2>The Bash Script<\/h2>\n<p>Create a file named <code>backup.sh<\/code> in your home directory and paste the following code:<\/p>\n<pre><code class=\"language-bash\">#!\/usr\/bin\/env bash\nset -euo pipefail\n\n# === CONFIGURATION ===\nVHOST_ROOT=\"$HOME\"\nBACKUP_DIR=\"${VHOST_ROOT}\/MyBackup\"\nLOG_FILE=\"${VHOST_ROOT}\/backup.log\"\nDB_HOST=\"localhost\"\n\n# List of website directories (relative to VHOST_ROOT)\nSITES=(\n    \"httpdocs\"\n    \"site2.org.ua\"\n    \"site3.org.ua\"\n)\n\n# List of databases in \"DB_NAME:DB_USER:DB_PASS\" format\nDATABASES=(\n    \"db_site1:user1:pass1\"\n    \"db_site2:user2:pass2\"\n    \"db_site3:user3:pass3\"\n)\n\n# === LOGGING & ERROR HANDLING ===\nlog() {\n    echo \"[$(date '+%Y-%m-%d %H:%M:%S')] $1\" >> \"$LOG_FILE\"\n}\n\nerror_handler() {\n    local line_no=\"$1\"\n    local exit_code=\"${2:-1}\"\n    log \"ERROR: Script interrupted at line ${line_no} with exit code ${exit_code}.\"\n    [ -d \"${TMP_DIR:-}\" ] && rm -rf \"$TMP_DIR\"\n    exit \"$exit_code\"\n}\n\ntrap 'error_handler ${LINENO} $?' ERR\n\n# === MAIN PROCESS ===\nlog \"--- START: Backup procedure initiated ---\"\n\nDATE=$(date +%Y-%m-%d_%H-%M)\nTMP_DIR=\"${VHOST_ROOT}\/tmp\/backup_${DATE}\"\nARCHIVE_NAME=\"full_backup_${DATE}.tar.gz\"\n\nmkdir -p \"${TMP_DIR}\/db\" \"${TMP_DIR}\/files\" \"${BACKUP_DIR}\"\n\n# 1. Database dumps (using non-blocking flags for InnoDB)\nfor db_entry in \"${DATABASES[@]}\"; do\n    IFS=\":\" read -r db_name db_user db_pass <<< \"$db_entry\"\n    log \"DB: Dumping database '${db_name}'...\"\n    mysqldump -h \"${DB_HOST}\" -u\"${db_user}\" -p\"${db_pass}\" \\\n        --single-transaction --quick \"${db_name}\" > \"${TMP_DIR}\/db\/${db_name}.sql\"\n    log \"DB: Dump '${db_name}' created successfully.\"\ndone\n\n# 2. Website files archiving\nfor site in \"${SITES[@]}\"; do\n    if [ -d \"${VHOST_ROOT}\/${site}\" ]; then\n        log \"FILES: Archiving '${site}'...\"\n        tar_status=0\n        tar -czf \"${TMP_DIR}\/files\/${site}.tar.gz\" \\\n            --exclude=\"${site}\/var\/cache\" \\\n            --exclude=\"${site}\/tmp\" \\\n            -C \"${VHOST_ROOT}\" \"$site\" || tar_status=$?\n\n        # Exit code 1 in tar indicates \"file changed as we read it\" (warning)\n        if [ \"$tar_status\" -eq 1 ]; then\n            log \"WARNING: Files in '${site}' changed during archiving.\"\n        elif [ \"$tar_status\" -gt 1 ]; then\n            log \"ERROR: Critical tar failure in '${site}', code: $tar_status\"\n            exit \"$tar_status\"\n        fi\n        log \"FILES: Archive for '${site}' created.\"\n    fi\ndone\n\n# 3. Final archive assembly\nlog \"ARCHIVE: Creating final bundle ${ARCHIVE_NAME}...\"\ntar -czf \"${BACKUP_DIR}\/${ARCHIVE_NAME}\" -C \"${TMP_DIR}\" .\nlog \"ARCHIVE: Saved to ${BACKUP_DIR}\/${ARCHIVE_NAME}.\"\n\n# 4. Rotation (deleting backups older than 7 days)\nlog \"ROTATION: Removing backups older than 7 days...\"\nfind \"${BACKUP_DIR}\" -type f -name \"full_backup_*.tar.gz\" -mtime +7 -delete\n\n# 5. Temporary directory cleanup\nrm -rf \"${TMP_DIR}\"\nlog \"--- SUCCESS: Backup completed successfully ---\"\n<\/code><\/pre>\n<h2>Setup Instructions<\/h2>\n<h3>1. Make the Script Executable<\/h3>\n<p>Grant execution permissions to the script:<\/p>\n<pre><code class=\"language-bash\">chmod +x ~\/backup.sh<\/code><\/pre>\n<h3>2. Configure Cron Job<\/h3>\n<p>Open the current user&#8217;s crontab editor:<\/p>\n<pre><code class=\"language-bash\">crontab -e<\/code><\/pre>\n<p>Add a schedule to run the script every Sunday at 03:00 AM:<\/p>\n<pre><code class=\"language-bash\">0 3 * * 0 \/bin\/bash \/home\/username\/backup.sh > \/dev\/null 2>&1<\/code><\/pre>\n<h2>Monitoring &#038; Logging<\/h2>\n<p>Every step of the execution is logged to <code>backup.log<\/code>. In the event of an unexpected interruption (such as disk quota limits or database credential errors), the log records the exact line number and error code where execution halted.<\/p>\n<p>Inspect the latest log entries at any time using:<\/p>\n<pre><code class=\"language-bash\">tail -n 30 ~\/backup.log<\/code><\/pre>\n<blockquote>\n<p><strong>Summary:<\/strong> You now have a lightweight, self-contained backup solution that automatically delivers ready-to-download archives to an accessible FTP\/SFTP directory without relying on heavy CMS plugins.<\/p>\n<\/blockquote>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Regular backups are the only reliable defense against server failures, CMS update errors, or cyberattacks. While most control panels (Plesk, cPanel) include built-in backup tools, the archives they generate are often stored in isolated system directories that are inaccessible via standard FTP\/SFTP accounts. In this article, we will cover how to build a universal Bash&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":805,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[28],"tags":[],"class_list":["post-806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-configuration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automated Website &amp; Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/\" \/>\n<meta property=\"og:locale\" content=\"uk_UA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated Website &amp; Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine\" \/>\n<meta property=\"og:description\" content=\"Regular backups are the only reliable defense against server failures, CMS update errors, or cyberattacks. While most control panels (Plesk, cPanel) include built-in backup tools, the archives they generate are often stored in isolated system directories that are inaccessible via standard FTP\/SFTP accounts. In this article, we will cover how to build a universal Bash&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0411\u043b\u043e\u0433 Hosting in Ukraine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hostinginua\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-02T06:05:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-02T06:05:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yevhenii\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@HostingInUA\" \/>\n<meta name=\"twitter:site\" content=\"@HostingInUA\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yevhenii\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u0438\u0431\u043b. \u0447\u0430\u0441 \u0447\u0438\u0442\u0430\u043d\u043d\u044f\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u0445\u0432\u0438\u043b\u0438\u043d\u0438\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/\"},\"author\":{\"name\":\"Yevhenii\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#\\\/schema\\\/person\\\/28d8fb95d1ac8afea538f3e366bf89fa\"},\"headline\":\"Automated Website &#038; Database Backup on Linux\\\/VPS: A Universal Bash Script with Rotation and Logging\",\"datePublished\":\"2026-10-02T06:05:36+00:00\",\"dateModified\":\"2026-10-02T06:05:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/\"},\"wordCount\":280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg\",\"articleSection\":[\"Software configuration\"],\"inLanguage\":\"uk\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/\",\"name\":\"Automated Website & Database Backup on Linux\\\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg\",\"datePublished\":\"2026-10-02T06:05:36+00:00\",\"dateModified\":\"2026-10-02T06:05:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#breadcrumb\"},\"inLanguage\":\"uk\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"uk\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg\",\"contentUrl\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg\",\"width\":1376,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/software-configuration\\\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0411\u043b\u043e\u0433\",\"item\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software configuration\",\"item\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/en\\\/category\\\/software-configuration\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Automated Website &#038; Database Backup on Linux\\\/VPS: A Universal Bash Script with Rotation and Logging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/\",\"name\":\"Blog Hosting in Ukraine\",\"description\":\"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433, \u0434\u043e\u043c\u0435\u043d\u0438 \u0442\u0430 \u0441\u0430\u0439\u0442\u0438\",\"publisher\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"uk\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#organization\",\"name\":\"Blog Hosting in Ukraine\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"uk\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/black_logo.png\",\"contentUrl\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/black_logo.png\",\"width\":136,\"height\":30,\"caption\":\"Blog Hosting in Ukraine\"},\"image\":{\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hostinginua\",\"https:\\\/\\\/x.com\\\/HostingInUA\",\"https:\\\/\\\/www.instagram.com\\\/hosting.in.ua\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hostinginukraine\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/#\\\/schema\\\/person\\\/28d8fb95d1ac8afea538f3e366bf89fa\",\"name\":\"Yevhenii\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"uk\",\"@id\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/litespeed\\\/avatar\\\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223\",\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/litespeed\\\/avatar\\\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223\",\"contentUrl\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/wp-content\\\/litespeed\\\/avatar\\\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223\",\"caption\":\"Yevhenii\"},\"sameAs\":[\"http:\\\/\\\/hosting.in.ua\\\/blog\"],\"url\":\"https:\\\/\\\/hosting.in.ua\\\/blog\\\/author\\\/yevhenii\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated Website & Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/","og_locale":"uk_UA","og_type":"article","og_title":"Automated Website & Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine","og_description":"Regular backups are the only reliable defense against server failures, CMS update errors, or cyberattacks. While most control panels (Plesk, cPanel) include built-in backup tools, the archives they generate are often stored in isolated system directories that are inaccessible via standard FTP\/SFTP accounts. In this article, we will cover how to build a universal Bash&hellip;&nbsp;","og_url":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/","og_site_name":"\u0411\u043b\u043e\u0433 Hosting in Ukraine","article_publisher":"https:\/\/www.facebook.com\/hostinginua","article_published_time":"2026-10-02T06:05:36+00:00","article_modified_time":"2026-10-02T06:05:37+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg","type":"image\/jpeg"}],"author":"Yevhenii","twitter_card":"summary_large_image","twitter_creator":"@HostingInUA","twitter_site":"@HostingInUA","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e":"Yevhenii","\u041f\u0440\u0438\u0431\u043b. \u0447\u0430\u0441 \u0447\u0438\u0442\u0430\u043d\u043d\u044f":"2 \u0445\u0432\u0438\u043b\u0438\u043d\u0438"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#article","isPartOf":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/"},"author":{"name":"Yevhenii","@id":"https:\/\/hosting.in.ua\/blog\/#\/schema\/person\/28d8fb95d1ac8afea538f3e366bf89fa"},"headline":"Automated Website &#038; Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging","datePublished":"2026-10-02T06:05:36+00:00","dateModified":"2026-10-02T06:05:37+00:00","mainEntityOfPage":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/"},"wordCount":280,"commentCount":0,"publisher":{"@id":"https:\/\/hosting.in.ua\/blog\/#organization"},"image":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg","articleSection":["Software configuration"],"inLanguage":"uk","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/","url":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/","name":"Automated Website & Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging - \u0411\u043b\u043e\u0433 Hosting in Ukraine","isPartOf":{"@id":"https:\/\/hosting.in.ua\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#primaryimage"},"image":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg","datePublished":"2026-10-02T06:05:36+00:00","dateModified":"2026-10-02T06:05:37+00:00","breadcrumb":{"@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#breadcrumb"},"inLanguage":"uk","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/"]}]},{"@type":"ImageObject","inLanguage":"uk","@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#primaryimage","url":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg","contentUrl":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2026\/10\/gemini_generated_image_tdr0u6tdr0u6tdr0.jpg","width":1376,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/hosting.in.ua\/blog\/en\/software-configuration\/automated-website-database-backup-on-linux-vps-a-universal-bash-script-with-rotation-and-logging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0411\u043b\u043e\u0433","item":"https:\/\/hosting.in.ua\/blog\/"},{"@type":"ListItem","position":2,"name":"Software configuration","item":"https:\/\/hosting.in.ua\/blog\/en\/category\/software-configuration\/"},{"@type":"ListItem","position":3,"name":"Automated Website &#038; Database Backup on Linux\/VPS: A Universal Bash Script with Rotation and Logging"}]},{"@type":"WebSite","@id":"https:\/\/hosting.in.ua\/blog\/#website","url":"https:\/\/hosting.in.ua\/blog\/","name":"Blog Hosting in Ukraine","description":"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433, \u0434\u043e\u043c\u0435\u043d\u0438 \u0442\u0430 \u0441\u0430\u0439\u0442\u0438","publisher":{"@id":"https:\/\/hosting.in.ua\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hosting.in.ua\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"uk"},{"@type":"Organization","@id":"https:\/\/hosting.in.ua\/blog\/#organization","name":"Blog Hosting in Ukraine","url":"https:\/\/hosting.in.ua\/blog\/","logo":{"@type":"ImageObject","inLanguage":"uk","@id":"https:\/\/hosting.in.ua\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2025\/10\/black_logo.png","contentUrl":"https:\/\/hosting.in.ua\/blog\/wp-content\/uploads\/2025\/10\/black_logo.png","width":136,"height":30,"caption":"Blog Hosting in Ukraine"},"image":{"@id":"https:\/\/hosting.in.ua\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hostinginua","https:\/\/x.com\/HostingInUA","https:\/\/www.instagram.com\/hosting.in.ua\/","https:\/\/www.linkedin.com\/company\/hostinginukraine\/"]},{"@type":"Person","@id":"https:\/\/hosting.in.ua\/blog\/#\/schema\/person\/28d8fb95d1ac8afea538f3e366bf89fa","name":"Yevhenii","image":{"@type":"ImageObject","inLanguage":"uk","@id":"https:\/\/hosting.in.ua\/blog\/wp-content\/litespeed\/avatar\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223","url":"https:\/\/hosting.in.ua\/blog\/wp-content\/litespeed\/avatar\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223","contentUrl":"https:\/\/hosting.in.ua\/blog\/wp-content\/litespeed\/avatar\/40ed5571b025544ee1b36aec8595c4e0.jpg?ver=1791545223","caption":"Yevhenii"},"sameAs":["http:\/\/hosting.in.ua\/blog"],"url":"https:\/\/hosting.in.ua\/blog\/author\/yevhenii\/"}]}},"_links":{"self":[{"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/posts\/806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/comments?post=806"}],"version-history":[{"count":1,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/posts\/806\/revisions"}],"predecessor-version":[{"id":807,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/posts\/806\/revisions\/807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/media\/805"}],"wp:attachment":[{"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/media?parent=806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/categories?post=806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hosting.in.ua\/blog\/wp-json\/wp\/v2\/tags?post=806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}