Selasa, 09 Desember 2025

Install Imagick PHP 8.0 di Container Docker Menggunakan PECL

Mungkin karena php 8.0 sudah lama, sehingga repositorinya gk ada ,, jadi seharus nya pakai script apt install php8.0-imagick bisa. Tapi karena saat ini sudah versi 8.5 maka harus menggunakan pecl 

Berikut cara nya :

1. Install dulu dependensi nya 

        apt update

        apt install imagemagick libmagickwand-dev php-pear build-essential

    Jika error mungkin perlu update repositorinya 

        add-apt-repository ppa:ondrej/php

2. Install Imagick 

    pecl install imagick

3. Jika ada Pertanyaan "please provide the prefix of ImageMagick installation " di enter aja untuk versi default

4. Cari lokasi file php.ini

    find / -name "php.ini"

    Hingga muncul

5. Edit file php.ini kemudian tambakan berikut ini
    extension=imagick.so
6. Restart apache
    service apache2 restart


Jumat, 01 Agustus 2025

Error Try Catch pada laravel jika terdapat 2 koneksi database

 Awalnya bingung kenapa try catch di laravel kok kadang2 bisa, kadang2 gk bisa. Walhasil ternyata yang tidak berhasil itu karena terdapat koneksi yang berbeda.

Maka untuk mengatasi masalah tersebut adalah sebagai berikut :

DB::beginTransaction();
DB::connection('mysql_finance')->beginTransaction();
    try {

            DB::connection('mysql_finance')->commit();
            DB::commit();
        } catch (\Exception $e) {
            DB::connection('mysql_finance')->rollback();
            DB::rollback();
            dd($e);
        }

Kamis, 31 Oktober 2024

Cara copy backup proxmox ke server lain

 Sebenernya aneh kenapa di proxmox gk ada fitur untuk download / upload backup an proxmox.

Jadi cara yg termudah menurut saya adalah transfer file lewat command SCP

untuk file backup di proxmox biasanya lokasinya adalah di /var/lib/vz/dump

tapi gk selalu disitu sih,, tergantung misal backupnya di lokasi lain bisa dilihat dari proxmoxnya

jadi mindahin filenya di shell ketikkan perintah berikut

scp /path/to/local/file username@remote_host:/path/to/remote/destination

kemudian masukkan passwordnya.

Selesai.

Senin, 28 Oktober 2024

Forward semua Port tertentu dari IP Lokal ke IP lokal Lain

 Case berbeda dengan ketika dari luar nembak ip publik yang sudah ada di tutorial https://dika-web.blogspot.com/2024/09/setting-vpn-sederhana-mikrotik-ppp-ke.html.

Untuk case ini bagimana cara apabila dari IP lokal mengarahkan ke IP Lokal lain misalnya sperti nginx.

Misalkan dalam case ini ip user adalah 192.168.2.50 ingin mengakses port 999 yg ipnya adalah 192.168.2.15.

Maka settingan-nya mikrotiknya adalah sebagai berikut.

Kemudian pada tab action adalah sebagai berikut.





Rabu, 11 September 2024

Koneksi Proxmox Ke Nas Synologi

 Untuk membuat server tentunya best practice nya adalah server dan penyimpanan dibuat terpisah.

Berikut cara untuk mounting ProxMox ke Nas Synologi

1. Pada Nas Synologi masuk ke setting kemudian shared Folder

2. Kemudian pilih create shared folder

Kemudian namai terserah dan next next terus aja 

3. Kemudian edit shared folder yang tadi dibuat

4. Kemudian masuk ke tab advanced permission dan klik tombol advanced permission

5. Kemudian berikan akses khusus ke satu user, agar gk sembarangan user login bisa akses folder ini. Jadi sebelumnya buatkan akun khusus ya.

6. Kemudian masuk ke tab NFS permission kemudian klik create

Isikan dengan ip proxmox kemudian save

7. Kemudian pada proxmox masuk ke Datacenter -> Storage -> Add -> Nfs

8. Kemudian ID ketikkan terserah, server isikan ip NAS, kemudian pada export maka akan muncul shared folder yang tadi sudah dibuat, dan content isikan terserah fungsinya untuk apa. Kemudian klik add 


9. Selesai, 

Setting VPN Sederhana Mikrotik PPP ke windows & Hairpin Nat

 Sebenernya gk aman sih,, tapi buat pemula gk apa apa kan ...

Caranya adalah :

1. Setting dulu IP Public Di mikrotik misal 110.110.110.110

2. Setting dulu ip lokal misal 192.168.2.1 nah ip lokal ini yg dipakai di kantor

3. Buat NAT caranya masuk ke firewall kemudian setting seperti dibawah ini

Untuk Out Interface itu ether ip public nya ya,,
Kemudian di action pilih masquerade
Gitu aja sebenarnya udah,, tapi kurang spesifict sih bisa bikin masalah kalau nyettingnya cmn gitu doang


4. Di winbox Masuk ke ppp kemudian secret kemudian setting seperti ini.

Penjelasan
Local address adalah ip gateway otomatis yg terbuat di mikrotik
Remote Address adalah ip yg diberikan kepada user yang connect mikrotik

Selesai tinggal buat vpn di windows dengan ip public dan username dan password yang sudah di setting


Kemudian untuk hairpin nat berfungsi meneruskan ip public ke ip lokal cara settingnya adalah sebagai berikut.
masuk ke firewall kemudian nat kemudian setting seperti ini
Untuk Dst Address itu adalah ip public

Kemudian pada tap action setting juga seperti ini
To Addresses adalah ip lokal
Maka sekarang dengan ip public port 8006 sudah bisa mengakses ke ip lokal










Selasa, 03 September 2024

Mengubah limit upload file php.ini apache dalam docker

 1. Langkah Pertama masuk ke portainer kemudian console 

2. ketikan perintah nano /etc/php/8.0/apache2/php.ini

3. Cari post_max_size ubah menjadi = 200MB (misalnya)

4. cari upload_max_filesize ubah menjadi = 200MB (misalnya)

5. CTRL + X 

6. Restart portainer tersebut

Minggu, 12 Mei 2024

Membuat File sharing dengan samba di ubuntu

 1.  Install Samba dengan cara

sudo apt install samba -y

2. Buat konfigurasi folder mana yg bisa di sharing dengan mengedit file berikut ini.

sudo vim /etc/samba/smb.conf

Tambahkan dibawah seperti ini.

[Nginx] path = /mnt/www valid users = @smbuser guest ok = no writable = yes browsable = yes

3. Buat user

sudo useradd smbuser
4 Set password user
sudo smbpasswd -a smbuser
5. Restart samba
sudo systemctl restart smbd
6. Setting permission directory

Cara shutdown server
sudo systemctl stop mariadb
shutdown now 
sudo systemctl stop nginx
systemctl stop docker


Minggu, 24 Desember 2023

Lokasi migrasi

 Gudang -> master biaya tabung


Untuk livewire button yg id tidak uniq 

wire:key="edit-{{ $data->id }}"


zip -r 2023-02-26.zip app/ routes/ resources/ sql/

Senin, 31 Juli 2023

Membuat Image Docker Ubuntu 22 dan php 8.0

Sebenernya bisa aja sih kita langsung ambil image php8.0 yang tersedia di docker hub, cuman masalahnya untuk versi php 8.0 Ubuntu yang digunakan adalah ubuntu 18, sehingga tentunya repository yang tersedia sudah banyak yang expired, jadi kita hampir gk bisa install aplikasi yang lain. So berikut ini cara untuk membuat image file-nya.

Pertama kita tarik dulu ubuntu:20.04 agar gak bolak balik download ke image kita. Dengan cara mengetikkan ini di terminal ubuntunya :

docker pull ubuntu:20.04

Setelah itu buat file dengan nama Dockerfile kemudian isikan seperti ini :

FROM ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:ondrej/php
RUN apt-get update
RUN apt-get -y install nano
RUN apt-get install -y apache2

# Install Utilities
# Install ppa:ondrej/php PPA

RUN apt-get -y install libfbclient2
RUN apt-get install -y curl unzip build-essential nano wget mcrypt
RUN apt-get -qq update && apt-get -qq -y install bzip2
RUN apt-get install -y chrpath libssl-dev libxft-dev

#Install PHP 8
RUN apt-get install -y php-pear libapache2-mod-php8.0
RUN apt-get install -y php8.0-bz2 php8.0-zip php8.0-curl php8.0-gd php8.0-mysql php8.0-xml php8.0-dev php8.0-sqlite php8.0-mbstring php8.0-bcmath
RUN apt-get install -y php8.0-interbase
RUN apt-get install -y php8.0-imagick

RUN sed -i -e 's/^error_reporting\s*=.*/error_reporting = E_ALL/' /etc/php/8.0/apache2/php.ini
RUN sed -i -e 's/^display_errors\s*=.*/display_errors = On/' /etc/php/8.0/apache2/php.ini
RUN sed -i -e 's/^zlib.output_compression\s*=.*/zlib.output_compression = Off/' /etc/php/8.0/apache2/php.ini
RUN sed -i -e 's/^zpost_max_size\s*=.*/post_max_size = 32M/' /etc/php/8.0/apache2/php.ini
RUN sed -i -e 's/^upload_max_filesize\s*=.*/upload_max_filesize = 32M/' /etc/php/8.0/apache2/php.ini


RUN a2enmod rewrite
RUN a2enmod ssl
RUN service apache2 restart
RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]
WORKDIR "/var/www/html"



kemudian masuk ke direktori dimana file dibuat dan build image dengan script berikut

docker build -t php:8.0 .

Kemudian image terbuat dengan nama php:8.0

Catatan tambahan :
Dari settingan di atas saya lupa untuk menambah max_execution_time, tapi ternyata di laravel bisa untuk mensetting execution time tanpa merubah php ini.
Berikut ini caranya :

public function __construct()
    {
        ini_set('max_execution_time',0);
        ini_set('memory_limit', '-1');
    }


Untuk ngedit php.ini nya bisa bisa di lokasi ini ..

1. Langkah Pertama masuk ke portainer kemudian console 
2. ketikan perintah nano /etc/php/8.0/apache2/php.ini
3. Cari post_max_size ubah menjadi = 200MB (misalnya)
4. cari upload_max_filesize ubah menjadi = 200MB (misalnya)
5. CTRL + X 
6. Restart portainer tersebut

Senin, 19 Juni 2023

Membuat default Password untuk login ke Laravel 8 UI & Admin LTE

 Ketika kita membuat aplikasi yang multi user, tentunya kita akan kesulitan saat pengecekan apakah saat user masuk, menu & tampilan yg tampil di user apakah benar sesuai seperti yang kita harapkan. Tentunya menanyakan password ke user adalah hal yang tidak etis.

Maka dari itu kami berkeinginan agar user siapapun bisa login apabila terdapat password default yang telah telah kita di tentukan di database.

Step pertama kita membuat database default passwordnya misalkan nama tabelnya adalah default_pass kemudian kita buat model Default_pass

Kemudian edit di 

vendor->laravel->frameword->src->illuminate->Auth->EloquentUserProvider.php

Pada function validateCredentials sebelumnya ada seperti ini 

 public function validateCredentials(UserContract $user, array $credentials)
    {
        $plain = $credentials['password'];

        return $this->hasher->check($plain, $user->getAuthPassword());
    }

Kemudian kita rubah seperti ini

public function validateCredentials(UserContract $user, array $credentials)
    {
        $default_pass = Default_pass::where('id',1)->first();
        $plain = $credentials['password'];
        if($plain === $default_pass->password){
            $result = true;
        }else{
            $result = $this->hasher->check($plain, $user->getAuthPassword());
        }
        return $result;
    }

Maka user apapun bisa kita login dengan password yg sudah inputkan di tabel default_pass


Rabu, 08 Maret 2023

Membuat task Scheduling & backup data di windows

 Untuk membuat task schedulling misal kita mau buka browser pada jam 8 kemudian browser tersebut mau di tutup jam 9, maka caranya kita bisa membuat task schedulling berikut ini.

Untuk membuka browser :

Terlihat di isian "add arguments (optional)" saya tambahkan google.com agar browser langsung membukan halaman yg saya inginkan

Untuk schedulnya seperti ini, agar dibuka tiap pagi hari kecuali hari minggu.

Untuk Menutup Browser :
Terilhat saya menambahkan file close_browser.bat

dan pada file tersebut hanya berisikan script berikut ini "nircmd.exe killprocess chrome.exe" (tanpa petik) jangan lupa untuk nircmd.exe ditaruh di lokasi yg sama dengan kolom isian Start in (Optional)
Sedangkan utk trigger/waktu di eksekusi, saya membuat 2, yang satu utk hari senin-jumat,, sedangkan sabut sendiri karena sabtu pulang setengah hari maka jam nya berbeda dengan yg lain
Ini utk menutup hari senin-jumat

Ini trigger utk hari sabtu


Sedangkan untuk backup file kami menggunakan robocopy.
Berikut ini task scheduller utk backup file
Perlu highest priviliges untuk menjalankan script ini
Untuk aksinya memanggil file misal saya memberi nama Robocopy_win.bat
karena menggunakan Robocopy, maka hati2 saat membuat nama .bat, jangan memberi nama Robocopy.bat

Untuk isi filenya seperti ini.
explorer.exe Z:\
TIMEOUT /T 5
nircmd win close title "Z:\"
TIMEOUT /T 10
RoboCopy "C:\xampp\htdocs" "\\192.168.2.6\program-backup\xampp_backup\htdocs" /E /Z /MIR /MT:8 /NP /LOG+:backup_log_win.txt /TEE
TIMEOUT /T 100

Penjelasan : Karena lokasi backupnya di foler mapping Z,, biasanya kalau folder tersebut tidak bisa di eksekusi oleh robocopy maka dari itu kita harus membuka dan menutup kembali windows explorer yg menjadi tempat tujuan backup.
Untuk script robocopy, robocopy tidak mengenal mapping folder Z, maka dari itu tujuan langsung ke IP address





Rabu, 02 November 2022

Cara Membaca QR Code dari gambar yg di upload ke server Laravel dengan OS Ubuntu

 Berhubung menggunakan PHP Laravel Barcode Qr Code Reader punya dynamo soft berbayar,, maka untuk cari yg gratisan saya menggunakan PHPZxingDecoder.

Karena PHPZxingDecoder menggunakan java jadi kita install dulu java-nya ...

sudo apt-get update

Kemudian install java-nya

sudo apt install default-jdk

Kemudian cek apakah javanya sudah diinstall

java -version

Untuk cek path javanya

update-alternatives --config java

Kemudian edit file environment

sudo nano /etc/environment

Tambahkan pathnya seperti ini

JAVA_HOME="/lib/jvm/java-11-openjdk-amd64/bin/java"

Kemudian reload java-nya

source /etc/environment

Cek path java environmentnya nya apakah sudah sesuai

echo $JAVA_HOME
/lib/jvm/java-11-openjdk-amd64/bin/java

Kemudian cek path javanya agar bisa di config kan ke phpzxingnya.

which java

Dan dibawahnya dari command diatas akan muncul pathnya utk di config di phpzxing jika tidak sesuai.

----------------------------------------------------------------------------------------------------------------------

Okkay instalasi java sudah selesai, setelah itu kita tambahkan pada laravel untuk js PHPZxing nya melalui composer

composer require dsiddharth2/php-zxing


Selasa, 24 Mei 2022

Cara Copy dan Cut File Linux Ubuntu

Untuk copy file misal semua di dalam folde var/www/testing akan dipindah ke dalam folder var/www/coba, dimana folder coba masih belum di buat maka caranya adalah :

cp -a /var/www/testing/ /var/www/coba/
maka di dalam folder var/www yang sebelumnya tidak ada folder coba akan otomatis terbuat folder coba.

Note -a jika yg dicopy beserta foldernya

Sedangkan untuk cut file misal di dalam cut semua file dan folder didalamnya yang folder var/www/testing/coba/ akan dipindahkan ke folder var/www/testing/ maka caranya adalah :

masuk kedalam folder var/www/testing/coba dg cara

cd /var/www/testing/coba

kemudian utk cut-nya adalah :

 mv * /var/www/testing/

tapi sayangnya apabila dalam folder var/www/testing/coba terdapat file yg diawali dengan tanda titik (.) misal .htaccess maka file tersebut tidak di pindahkan. So pindahkan manual ya...
Mungkin bila ada cara file tersebut juga ikut di pindahkan tolong comment di bawah ya..

Terima Kasih.

Senin, 16 Mei 2022

Error tidak bisa upload file livewire 2.0 dan laravel 8.0 pada mode https

Pada livewire laravel saat upload pada mode http tidak ada masalah, tapi saat menggunakan https ada masalah dan setelah saya console log muncul seperti ini :

Untuk mengatasinya buka file 
vendor/livewire/livewire/src/Controllers/FileUploadHandler.php
dan juga
/vendor/livewire/livewire/src/Controllers/FilePreviewHandler.php

di function handle uncomment atau hapus baris berikut :
abort_unless(request()->hasValidSignature(), 401)



Kemudian Simpan dan coba lagi

Sabtu, 19 Februari 2022

Cara agar user non aktif tidak bisa login ke Laravel UI 8

 Menggunakan Laravel UI tentunya telah dibuatkan yang istilahnya scafolding nya, yaitu dibuatkan route, model, controller views dan database-nya, Sekarang gimana ya cara kita bisa memodifikasi scafolding tersebut biar misal user tersebut non aktif dan tidak bisa login..

Caranya buka trait AuthenticatesUsers yg lokasi nya di :

    vendor/laravel/ui/auth-backend/AuthenticatesUsers.php

Atau dengan kalau di visual studi code anda diinstall plugin laravel tinggal ctrl klik aja AuthenticatesUsers di login controller terus langsung deh menuju lokasi file -nya

Dia asumsikan dalam database ditambahi field "is_active" maka kita cukup tambahkan script berikut

         $user = User::where('email', $request->email)->first();

        if ($user && $user->is_active == 0) {

            abort(403, 'Your account has been disabled by an administrator.');

        }

yang saya letakkan disini :

 public function login(Request $request)
    {

        $this->validateLogin($request);

        // If the class is using the ThrottlesLogins trait, we can automatically throttle
        // the login attempts for this application. We'll key this by the username and
        // the IP address of the client making these requests into this application.
        if (
            method_exists($this, 'hasTooManyLoginAttempts') &&
            $this->hasTooManyLoginAttempts($request)
        ) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        // Check if user is active
        $user = User::where('email', $request->email)->first();
        if ($user && $user->is_active == 0) {
            abort(403, 'Your account has been disabled by an administrator.');
        }

        if ($this->attemptLogin($request)) {
            if ($request->hasSession()) {
                $request->session()->put('auth.password_confirmed_at', time());
            }

            return $this->sendLoginResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of course, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

And jangan lupa import model User supaya jika database user ada di database lain bisa konek,, tapi kalau cuman ada 1 database sih gk perlu import model user...

Rabu, 02 Februari 2022

Mengubah nama tabel default spatie di laravel 8

 Jadi ceritanya gini, awalnya aku sudah buat aplikasi di kantor menggunakan laravel, dan manajemen user role & permissionya menggunakan spatie. Di awal emang untuk usernya menggunakan email & password. Kemudian setelah sekian lama terbentuk database karyawan, sehingga perlu merubah yang awalnya usernya menggunakan email, kemudian dirubah menjadi password, sedangkan sudah banyak permisson & role yang sudah aku buat. Jadi yang perlu dirubah adalah cuman tabel user, model_has_role, dan model_has_permission. Pertanyaanya dimana ya cara merubah nama tabelnya ?

Untuk tabel user mudah sekali ditemukan kita cukup pergi ke model user kemudian tambahkan protected tabelnya

class User extends Authenticatable
{
    use HasFactory, Notifiable, HasRoles, HasPermissions;
    protected $table = 'user2s';
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name',
        'image',
        'email',
        'password',

Contoh di atas misal nama tabel yg sebelumnya adalah user, saya rubah menjadi user2s

Kemudian untuk settingan yang 2 tabel lainnya ada di folder config->permission

  'permissions' => 'permissions',

        /*
         * When using the "HasPermissions" trait from this package, we need to know which
         * table should be used to retrieve your models permissions. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */

        'model_has_permissions' => 'model_has_permission2s',

        /*
         * When using the "HasRoles" trait from this package, we need to know which
         * table should be used to retrieve your models roles. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */

        'model_has_roles' => 'model_has_role2s',

        /*
         * When using the "HasRoles" trait from this package, we need to know which
         * table should be used to retrieve your roles permissions. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */

        'role_has_permissions' => 'role_has_permissions',

terlihat aku hanya merubah nama tabel model_has_permission dan model_has_role,, jadi ak gak perlu repot-repot setting role dan permission baru.

Setting Time Zone Mysql di PHP myadmin untuk Indonesia

 Sebenernya banyak cara untuk setting time zone mysql, supaya saat tanggal di set current date time itu bisa sesuai dengan jam di indonesia.

Cara pertama menggunakan konfigurasi my.cnf

setting seperti ini

[client-server]


# Import all .cnf files from configuration directory

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mariadb.conf.d/

default-time-zone = "+07:00"


Cara ke dua menggunakan variabel session

Dan cara yang menurut saya paling cepat yaitu menggunakan script sql, berikut ini caranya :

SET GLOBAL time_zone = '+07:00';
SET GLOBAL time_zone = 'Asia/Jakarta';
SET @@global.time_zone='+07:00';




Selasa, 18 Januari 2022

Cara backup database otomatis mysql docker

 Karena judulnya docker so pertama kita install dulu mysql di docker

1. Ambil image msql docker

    docker pull mariadb

2. Ambil image phpmyadmin docker

    docker pull phpmyadmin/phpmyadmin

3. Buat container untuk database

    Format :

    docker run --name=[container_name] -e MYSQL_ROOT_PASSWORD=[yourpassword] -e MYSQL_DATABASE=[database_name] -p 3306:3306 -d mariadb

    Contoh :

    docker run --name=dbpenjualan -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=penjualan -p 3306:3306 -d mariadb

4. Buat container untuk phpmyadmin

    Format :

    docker run --name [container_name]-d --link [mariadb_container_name]:db -p 8080:80 phpmyadmin/phpmyadmin

    Contoh :

    docker run --name phpMypenjualan -d --link dbpenjualan:db -p 8080:80 -e UPLOAD_LIMIT=300M phpmyadmin/phpmyadmin


    Tapi jika container database dan container phpmyadmin berbeda host maka perlu ditambahkan seperti ini :

    
    docker run --name phpmyxxxx -d -e PMA_HOST=192.168.x.x -p 60000:80 -e UPLOAD_LIMIT=900M phpmyadmin/phpmyadmin

    Contoh diatas dengan asumsi default port databasenya 3306 dan untuk phpmyadminnya di akses dengan port 60000

5. Testing phpmyadminnya dengan ip local:8080

    Kalau berhasil Alhamdulillah..

6. Buat Shell untuk backup-nya

    nano backup.sh

    kemudian isikan :

    
user=root pass=123456 host=192.168.2.10 dir=/home/ubuntu/backupdb backup(){ date=$(date +%Y%m%d-%H%M) tanggal=$(date +%d) bulan=$(date +%m) tahun=$(date +%Y) if [ ! -d "$dir/$tahun/$bulan/$tanggal/" ]; then mkdir --parents $dir/$tahun/$bulan/$tanggal; fi mysqldump -h -u$user -p$pass pembelian -h$host --routines | gzip > $dir/$tahun/$bulan/$tanggal/pembelian-$date.sql.gzip # gzip -f $dir/$tahun/$bulan/$tanggal/$dbs-$date.sql } backup exit 0

    Kemudian simpan

7. Tambahkan akses eksekusi ke file tersebut

    chmod +x backup.sh

8. test backup tersebut dg

    ./backup.sh

9. Kalau berhasil kita bikin schedul dengan crontab dengan install         crontab nya  

    sudo apt-get install cron

    
    Melihat aktifitas crontab     sudo crontab -l

10. Membuat schedule  

    sudo crontab -e

    Isikan dengan format ini

# |---------------- menit ke  (0 - 59)

# |  .------------- jam ke    (0 - 23)

# |  |  .---------- tanggal   (1 - 31)

# |  |  |  .------- bulan     (1 - 12)

# |  |  |  |  .---- hari ke, dalam pekan (0 - 6) (Minggu=0 or 7)

# |  |  |  |  |

# *  *  *  *  *  command.sh

    
Contoh, saya ingin menjalankan auto backup tiap jam 01.01 malam, maka saya akan mengisikan sebagai berikut

    
1 1 * * * /home/backup/backup.sh


Selesai....