Friday, January 30, 2026

export import mysql di podman ubuntu server

 

1. Skrip Export (export_volume.sh)

Gunakan ini di server asal untuk membungkus folder data.

Bash
#!/bin/bash
CONTAINER_NAME="psmysql"
DB_DATA_DIR="$HOME/mysql"
BACKUP_DIR="$HOME/volume_backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# Buat folder backup jika belum ada
[[ ! -d "$BACKUP_DIR" ]] && mkdir -p "$BACKUP_DIR"

echo "📦 Archiving volume dari $DB_DATA_DIR..."
podman unshare tar -czf "$BACKUP_DIR/psmysql_$TIMESTAMP.tar.gz" -C "$DB_DATA_DIR" .

echo "✅ Selesai: $BACKUP_DIR/psmysql_$TIMESTAMP.tar.gz"

2. Skrip Import (import_volume.sh)

Gunakan ini di server tujuan untuk mengekstrak data.

Bash
#!/bin/bash
DB_DATA_DIR="$HOME/mysql"
BACKUP_DIR="$HOME/volume_backup"

# Cari file terbaru
LATEST_BACKUP=$(ls -t $BACKUP_DIR/*.tar.gz 2>/dev/null | head -1)

if [[ -z "$LATEST_BACKUP" ]]; then
    echo "❌ File backup tidak ditemukan di $BACKUP_DIR"; exit 1
fi

echo "📦 Import file: $(basename $LATEST_BACKUP)"
read -p "Lanjutkan? (y/n): " CONFIRM
[[ $CONFIRM != "y" ]] && exit 0

# Eksekusi
rm -rf "$DB_DATA_DIR" && mkdir -p "$DB_DATA_DIR"
podman unshare tar -xzvf "$LATEST_BACKUP" -C "$DB_DATA_DIR"
podman unshare chown -R 1001:1001 "$DB_DATA_DIR"

echo "✅ Import selesai. Silakan jalankan startmysql.sh"

Thursday, January 29, 2026

aplikasi wajib untuk gui di terminal

 btop seperti task manager 

ranger  file explorer 

pydf monitor disk 

podman mysql 8 percona di ubuntu server

 

🚀 Panduan Portabel Percona 8.0 (Podman)

1. Script: startmysql.sh (Tanpa InnoDB Config)

Gunakan $USER agar script otomatis mengenali siapa pun yang menjalankan script ini.

Bash
#!/bin/bash
# Nama File: startmysql.sh

CONTAINER_NAME="psmysql"
# Menggunakan $HOME agar otomatis menyesuaikan nama user server
DB_DATA_DIR="$HOME/mysql"
IMAGE_NAME="docker.io/percona/percona-server:8.0.44"

echo "--- Menjalankan Percona Server ---"

# Inisialisasi folder
mkdir -p "$DB_DATA_DIR"
# Paksa UID 1001 (default Percona) tanpa perlu tahu nama user host
podman unshare chown -R 1001:1001 "$DB_DATA_DIR"

podman rm -f $CONTAINER_NAME >/dev/null 2>&1 || true

podman run -d \
    --name $CONTAINER_NAME \
    --restart unless-stopped \
    -p 3306:3306 \
    -v "$DB_DATA_DIR":/var/lib/mysql:Z \
    -e TZ=Asia/Jakarta \
    -e MYSQL_ROOT_PASSWORD="SecretRootPassword" \
    -e MYSQL_ROOT_HOST="%" \
    $IMAGE_NAME \
    --max_connections=151 \
    --default-authentication-plugin=mysql_native_password \
    --sql-mode="" \
    --innodb_strict_mode=OFF \
    --character-set-server=utf8mb4 \
    --collation-server=utf8mb4_general_ci \
    --default-time-zone="+07:00"

echo "✅ Database berhasil dijalankan di $DB_DATA_DIR"

2. Script: startbackup.sh (Universal)

Menggunakan variabel $HOME dan $USER agar tidak gagal saat pindah server.

Bash
#!/bin/bash
# Nama File: startbackup.sh

CONTAINER_NAME="psmysql"
DATA_DIR="$HOME/mysql"
BACKUP_BASE_DIR="$HOME/backups"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
TARGET_DIR="/backups/backup_$TIMESTAMP"

mkdir -p "$BACKUP_BASE_DIR"
# Memberikan izin ke container tanpa hardcode nama user
podman unshare chown -R 1001:1001 "$BACKUP_BASE_DIR"

echo "--- Memulai Backup Fisik ---"
podman run --rm \
    --network container:$CONTAINER_NAME \
    -v "$DATA_DIR":/var/lib/mysql:ro,Z \
    -v "$BACKUP_BASE_DIR":/backups:z \
    docker.io/percona/percona-xtrabackup:8.0 \
    xtrabackup --backup \
        --host=127.0.0.1 \
        --user=root \
        --password="SecretRootPassword" \
        --target-dir="$TARGET_DIR"

# Kembalikan akses ke user yang sedang login saat ini
sudo chown -R $USER:$USER "$BACKUP_BASE_DIR"
echo "✅ Backup selesai: $BACKUP_BASE_DIR/backup_$TIMESTAMP"

3. Script: startrestore.sh (Solusi Error 13)

Ini adalah versi yang memperbaiki error pada gambar Anda dengan menggunakan sudo chown -R $USER:$USER agar tidak peduli siapa nama user-nya.

Bash
#!/bin/bash
# Nama File: startrestore.sh
set -e

CONTAINER_NAME="psmysql"
DATA_DIR="$HOME/mysql"
BACKUP_BASE_DIR="$HOME/backups"
IMAGE_XTRABACKUP="docker.io/percona/percona-xtrabackup:8.0"

echo "--- Proses Restore Database ---"

# Pilih folder backup
cd "$BACKUP_BASE_DIR"
PS3="Pilih nomor folder backup: "
select SELECTED in *; do
    if [ -n "$SELECTED" ]; then
        FULL_PATH="$BACKUP_BASE_DIR/$SELECTED"
        break
    fi
done

# SOLUSI ERROR 13: Ambil alih kepemilikan folder secara universal
sudo chown -R $USER:$USER "$FULL_PATH"
sudo chmod -R 777 "$FULL_PATH"

echo "1. Prepare Data (Applying Logs)..."
# Gunakan user 0:0 agar xtrabackup bisa mkdir #innodb_redo di dalam container
podman run --rm --user 0:0 -v "$FULL_PATH:/backup:rw,z" $IMAGE_XTRABACKUP \
    xtrabackup --prepare --target-dir=/backup

echo "2. Cleanup & Copy-back..."
podman rm -f $CONTAINER_NAME >/dev/null 2>&1 || true
sudo rm -rf "$DATA_DIR"
mkdir -p "$DATA_DIR"

podman run --rm --user 0:0 \
    -v "$FULL_PATH:/backup:ro,z" \
    -v "$DATA_DIR":/var/lib/mysql:rw,z \
    $IMAGE_XTRABACKUP \
    xtrabackup --copy-back --target-dir=/backup --datadir=/var/lib/mysql

# Final Touch: Set izin ke UID 1001 agar Percona bisa start
podman unshare chown -R 1001:1001 "$DATA_DIR"

echo "✅ Restore selesai. Sekarang jalankan ./startmysql.sh"

Tuesday, January 27, 2026

exec di ubuntu server


# buat file nano /home/rs/start-mysql.sh
#!/bin/bash cd /home/rs/podman/db_percona || exit 1 /usr/bin/podman compose up -d
# jadikan executable chmod +x /home/rs/start-mysql.sh
# jalankan /home/rs/start-mysql.sh

Sunday, January 25, 2026

docker mysql percona 8.0

nama file : docker-compose.yml 


version: "3.9"


services:
  mysql:
    image: percona/percona-server:8.0.44
    container_name: psmysql
    command:
      - --max_connections=151
      - --default-authentication-plugin=mysql_native_password
      - --sql-mode=
      - --innodb_strict_mode=OFF
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --default-time-zone=+07:00
    restart: unless-stopped
    environment:
      TZ: Asia/Jakarta
      MYSQL_ROOT_PASSWORD: SecretRootPassword
      MYSQL_ROOT_HOST: "%"
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

Backup & Restore Docker Image Percona (Image Only)

 

Backup & Restore Docker Image Percona (Image Only)

Backup Image

Ukuran file .tar lebih kecil dari size image di Docker → NORMAL.

docker save percona/percona-server:8.0.44 -o percona_8.0.44.tar

Hasil:

  • File ±300–600 MB (compressed)

  • Image di Docker ±2 GB (uncompressed)


Hapus Image

docker rmi percona/percona-server:8.0.44

Restore Image

docker load -i percona_8.0.44.tar

Verifikasi

docker images

Image percona/percona-server:8.0.44 muncul kembali → restore sukses

Saturday, January 24, 2026

docker awal

 

Docker Praktis (Versi Ringkas)

Di mana buka PowerShell?

Buka PowerShell di folder yang ada docker-compose.yml

Contoh:

C:\docker\app └─ docker-compose.yml

Cara cepat:

  • Buka folder → klik kanan → Open in Terminal

  • Atau:

cd C:\docker\app

Perintah Utama Docker

Jalankan aplikasi

docker compose up -d

Hentikan aplikasi

docker compose down

Command Wajib Dihafal

docker ps docker compose up -d docker compose down docker logs <nama_container> docker rm -f <nama_container>

Catatan Penting

  • Jangan jalankan Docker dari folder sembarang

  • Satu aplikasi = satu folder

  • Semua perubahan lewat docker-compose.yml

Reuse Datastore PBS Lama di iSCSI

 

Rekap: Reuse Datastore PBS Lama di iSCSI (Tanpa Hilang Data)

Kasus
PBS baru, iSCSI lama berisi datastore PBS sebelumnya, data tidak boleh hilang.


1. Login iSCSI

apt install open-iscsi -y iscsiadm -m discovery -t sendtargets -p 193.168.10.19 iscsiadm -m node --login

Pastikan disk muncul (/dev/sdb).


2. Mount iSCSI (cek isi)

mount /dev/sdb /mnt/pbs ls -la /mnt/pbs

Jika terlihat struktur seperti:

.chunks .lock .gc-status vm

itu datastore PBS lama (VALID).


3. Daftarkan datastore EXISTING (UI & CLI akan gagal)

UI/CLI menolak karena path tidak kosong (by design).

Solusi resmi: edit config langsung

nano /etc/proxmox-backup/datastore.cfg

Isi:

datastore: nas-backup-19 path /mnt/pbs

Restart service:

systemctl restart proxmox-backup systemctl restart proxmox-backup-proxy

Datastore lama langsung muncul di UI.


4. Buat mount iSCSI permanen

Ambil UUID:

blkid /dev/sdb

Edit /etc/fstab:

UUID=xxxx /mnt/pbs xfs _netdev,noatime 0 2

Reload:

systemctl daemon-reload

Aktifkan auto-login iSCSI:

iscsiadm -m node -p 193.168.10.19 --op update -n node.startup -v automatic

5. Tes final (reboot)

reboot mount | grep /mnt/pbs

Jika masih ter-mount → PERMANEN & AMAN.

Tuesday, January 20, 2026

check datetime mysql

 SELECT @@global.time_zone, @@session.time_zone, NOW(), CURRENT_TIMESTAMP();


Sunday, January 18, 2026

setting wazuh agent tanpa wazuh manager di windowserver22

<localfile>

    <location>eventchannel</location>

  </localfile>

  <localfile>

    <location>syscheck.log</location>

  </localfile>



 <ossec_config>

  <client>

    <server>

      <address>127.0.0.1</address>

    </server>

  </client>

</ossec_config>



Saturday, January 17, 2026

bat file disable update windows server2022

 @echo off

echo === KILL UPDATE PROCESSES ===

taskkill /F /IM "MoUsoCoreWorker.exe" /T >nul 2>&1

taskkill /F /IM "usoclient.exe" /T >nul 2>&1

taskkill /F /IM "wuauclt.exe" /T >nul 2>&1


echo === STOP SERVICES ===

net stop wuauserv /y >nul 2>&1

net stop bits /y >nul 2>&1

net stop UsoSvc /y >nul 2>&1

net stop DoSvc /y >nul 2>&1


echo === DISABLE SERVICE MAIN ===

sc config wuauserv start= disabled >nul 2>&1

sc config bits start= disabled >nul 2>&1

sc config UsoSvc start= disabled >nul 2>&1


echo === APPLY REGISTRY POLICIES ===

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DoNotConnectToWindowsUpdateInternetLocations /t REG_DWORD /d 1 /f

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v AUOptions /t REG_DWORD /d 1 /f


echo === DISABLE TASK SCHEDULER UPDATE ===

schtasks /Change /TN "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /Disable >nul 2>&1

schtasks /Change /TN "\Microsoft\Windows\WindowsUpdate\Maintenance Install" /Disable >nul 2>&1

schtasks /Change /TN "\Microsoft\Windows\UpdateOrchestrator\Schedule Scan" /Disable >nul 2>&1

schtasks /Change /TN "\Microsoft\Windows\UpdateOrchestrator\Schedule Retry Scan" /Disable >nul 2>&1

schtasks /Change /TN "\Microsoft\Windows\UpdateOrchestrator\USO_UxBroker" /Disable >nul 2>&1


echo === RENAME SOFTWARE DISTRIBUTION ===

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old >nul 2>&1


echo === DONE ===

pause