Bagaimana saya bisa mereproduksi perintah yang dijalankan di satu mesin di komputer lain?


8

Saya ingin menginstal beberapa perangkat lunak pada mesin linux yang telah saya jalankan di VirtualBox. Lalu saya ingin melakukan hal yang sama pada linux-VPS.

Saya pikir saya bisa menyimpan semua perintah yang saya jalankan menggunakan historyperintah. Apakah ada cara saya bisa menjalankan perintah ini di komputer lain? Atau apa cara untuk melakukan hal-hal seperti itu?

Jawaban:


5

Baiklah, saya membayangkan 2 situasi di sini:

  1. Jika saya perlu menjalankan sejumlah kecil perintah, saya hanya akan menjalankannya lagi di komputer lain (dengan jumlah kecil maksud saya kurang dari 10)

  2. Jika saya perlu menjalankan banyak perintah, saya akan menempatkannya dalam skrip bash dan menjalankan skrip pada semua mesin lain. Script akan terlihat seperti ini:

    #!/bin/bash
    command 1
    command 2
    command 3
    command 4

Jika Anda tidak yakin tentang hasil dari beberapa perintah, Anda dapat memisahkan perintah dengan &&, yang berarti bahwa perintah berikutnya hanya akan dijalankan jika sebelumnya berhasil. command1 && command2berarti command2 tidak akan dieksekusi jika command1 gagal.


Terima kasih atas jawaban yang bagus. Saya akan mengatur PHP + Nginx + PostgreSQL jadi saya kira solusi skrip adalah caranya.
Jonas

Tergantung pada seberapa banyak Anda sudah tahu bagaimana melakukan dan berapa kali Anda berencana untuk menduplikasi proses ini. (Meskipun tidak otomatis, pendekatan paling menyeluruh untuk satu atau dua hal mungkin adalah menyimpan dokumen besar termasuk cuplikan kode yang berfungsi dan pemikiran serta catatan tentang prosedur pengaturan yang dapat Anda rujuk nanti ...) Setelah Anda tahu bagaimana semuanya bekerja, maka Anda pasti harus menulis naskah Bash atau Wayang besar atau apa pun.
Kevin Cantu


3

Patkos benar, mungkin yang terbaik adalah membuat skrip. Namun, untuk ini, kadang-kadang Anda harus bereksperimen sampai Anda melakukannya dengan benar dan memerlukan catatan tentang apa yang Anda lakukan dan apa hasilnya. Di sini alat ini scriptsangat berguna.

Ini membuat catatan semua aktivitas di terminal yang sedang berjalan:

Script membuat naskah semua yang tercetak di terminal Anda. Ini berguna untuk siswa yang membutuhkan catatan hardcopy dari sesi interaktif sebagai bukti tugas, karena file naskah dapat dicetak kemudian dengan lpr (1).


Terima kasih, saya akan belajar lebih banyak tentang itu. Itu terlihat menarik.
Jonas

bagaimana dengan melakukan semuanya pada satu mesin, lalu periksa file histori (seperti ~ / .bash_history untuk bash, atau ~ / .histfile untuk zsh) dan mungkin menyalinnya?
phunehehe

Riwayat mungkin terpotong ke 100 perintah terakhir atau batas ukuran sewenang-wenang lainnya, jadi Anda harus memeriksanya.
Kevin Cantu


2

Saya membangun alat open-source bernama Overcast untuk mempermudah hal ini.

Anda dapat memutar mesin-mesin Virtualbox secara lokal (menggunakan Vagrant di bawah tenda) atau pada sekelompok penyedia cloud yang berbeda, dan kemudian menjalankan perintah atau file skrip di semua dari mereka:

# Spin up Ubuntu 14.04 instances on Virtualbox, DigitalOcean, and Linode:
overcast virtualbox create vm.01
overcast digitalocean create vm.02
overcast linode create vm.03
# Run an arbitrary sequence of commands and scripts across all of them:
overcast run vm.* uptime "free -m" ./path/to/my-script.sh

Dokumentasi yang bagus!

1

Jika Anda ingin pertama kali menjalankan perintah secara interaktif pada satu mesin, dan kemudian memiliki skrip untuk menjalankannya pada yang lain, cukup buka .bash_history Anda (atau apa pun yang digunakan shell Anda) dalam editor teks, dan hapus kesalahan apa pun yang Anda buat pertama kali sekitar. Voila! Anda punya skrip yang bisa Anda salin ke komputer lain (dengan scp, rsync, apa pun).

Dalam beberapa kasus Anda mungkin harus memproses file sedikit lebih dulu. Sebagai contoh, saya menggunakan zsh, dan mengkonfigurasinya untuk menambahkan berbagai metadata (datestamps). Jelas Anda harus menghapus ini. Anda dapat dengan mudah melakukan ini di vim atau TextMate, atau mungkin editor yang layak menggunakan pemilihan blok. Atau Anda dapat menggunakan awk atau cut untuk menampilkan semuanya kecuali metadata. Inilah satu cara untuk melakukan ini:

cat .zhistory | cut -d';' -f2- 

Tetapi sebagian besar waktu Anda akan menemukan file riwayat Anda hanya daftar perintah lurus, jadi Anda mungkin tidak perlu khawatir tentang salah satu pemijatan ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.